我是新手,我尝试在另一个视图控制器中更改文本字段的文本,我只是写这样的东西准备segue,
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
secondViewcontroller *transferViewController = segue.destinationViewController;
NSLog(@"prepareForSegue: %@", segue.identifier);
if([segue.identifier isEqualToString:@"1"]){
transferViewController.IDtextfield.text = @"1";
}
else if([segue.identifier isEqualToString:@"2"]){
transferViewController.IDtextfield.text= @"2";
}
else if([segue.identifier isEqualToString:@"3"]){
transferViewController.IDtextfield.text = @"3";
}
else if([segue.identifier isEqualToString:@"4"]){
transferViewController.IDtextfield.text = @"4";
}
}
任何人都可以告诉我是否有任何错误吗?
答案 0 :(得分:0)
尝试语法: -
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure your segue name in storyboard is the same as this line
if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
{
// Get reference to the destination view controller
YourViewController *vc = [segue destinationViewController];
// Pass any objects to the view controller here, like...
[vc setMyObjectHere:object];
}
}
答案 1 :(得分:0)
试试这段代码:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"1"])
{
SecondViewController *transferViewController = [segue destinationViewController];
transferViewController.data = @"1";
}
else if ([[segue identifier] isEqualToString:@"2"])
{
SecondViewController *transferViewController = [segue destinationViewController];
transferViewController.data = @"2";
}
else if ([[segue identifier] isEqualToString:@"3"])
{
SecondViewController *transferViewController = [segue destinationViewController];
transferViewController.data = @"3";
}
else{
SecondViewController *transferViewController = [segue destinationViewController];
transferViewController.data = @"4";
}
}
SecondViewController.h
@interface SecondViewController : UIViewController
@property (nonatomic, readonly) NSString* data;
@end
SecondViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
IDtextfield.text = self.data;
}
注意:当您创建VC的对象时,它只是创建该VC的引用,即当您创建SecondVC的对象时,它不会将完整的控制器加载到内存中。这意味着,TextField不在内存中,这就是为什么在未加载VC之前无法设置textField文本的原因。
在这里,我只是发送我想在文本字段中设置的数据,加载VC后,我设置了文本字段文本。