2012-11-09 55 views
0

我想讓輸入的文本字段中的值更改下一個ViewController的背景顏色,但該值無法在第二個視圖控制器中讀取。如何讓這個它承認的價值?通過ViewControllers傳遞整數

ViewController.h:

#import <UIKit/UIKit.h> 
@interface ViewController : UIViewController <UIImagePickerControllerDelegate,   UINavigationControllerDelegate>{  
IBOutlet UITextField *valueTextField; 
} 
- (IBAction)save:(id)sender; 
@end 

ViewController.m:

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

- (void)viewDidLoad 
{ 
// Get the stored data before the view loads 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
int value = [defaults integerForKey:@"value"]; 
NSString *valueString = [NSString stringWithFormat:@"%i",value]; 
// Update the UI elements with the saved data 
valueTextField.text = valueString; 

[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
} 

- (void)didReceiveMemoryWarning 
{ 
[super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 

- (IBAction)save:(id)sender { 
[valueTextField resignFirstResponder]; 
int value = [[valueTextField text] integerValue]; 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setInteger:value forKey:@"value"]; 
[defaults synchronize]; 
NSLog(@"Data saved"); 
} 

@end 

NextViewController.h:

#import <UIKit/UIKit.h> 
@class ViewController; 
@interface NextViewController : UIViewController 
@end 

NextViewController.m:

#import "NextViewController.h" 
#import "ViewController.h" 

@interface NextViewController() 

@end 

@implementation NextViewController 

-(IBAction)displayClicks:(id)sender 
{ 
if(value<20) 
{ 
    self.view.backgroundColor = [UIColor redColor]; 
} 
else { 
    self.view.backgroundColor = [UIColor greenColor]; 
} 

} 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
if (self) { 
    // Custom initialization 
} 
return self; 
} 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view. 
} 

- (void)didReceiveMemoryWarning 
{ 
[super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 

@end 

回答

0

首先它不是好點的調用父類的方法畢竟。

- (void)viewDidLoad 
{ 

[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 

// Get the stored data before the view loads 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
int value = [defaults integerForKey:@"value"]; 
NSString *valueString = [NSString stringWithFormat:@"%i",value]; 
// Update the UI elements with the saved data 
valueTextField.text = valueString; 

} 

和在第二視圖控制器中,您從UserDefaluts中讀取「value」的值?

-(IBAction)displayClicks:(id)sender 
{ 
if(value<20) 
{ 
    self.view.backgroundColor = [UIColor redColor]; 
} 
else { 
    self.view.backgroundColor = [UIColor greenColor]; 
} 

} 

從你的身上,其中如果(價值< 20)? 也許你前殼服用嗎?

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    int value = [defaults integerForKey:@"value"]; 
+0

對不起,我不明白任何 – user1575528

+0

從哪裏你把價值比較的? 「如果(值<20)」 –