我有2个UIViewControllers,我可以在它们之间传递值没有问题。当我尝试将值传递给第三个视图(UITableViewController)时出现问题。 这是我的代码
所有连接都设置正确,在这里调用tableview:
- (IBAction)goToTableView:(id)sender {
TableMovieViewController *vc=[self.storyboard instantiateViewControllerWithIdentifier:@"TableMovieViewController"];
vc.finalResult.text=stringFromFirstView;
[self presentViewController:vc animated:YES completion:nil];
}
vc.finalResult.text
已举例"Test Call"
,我已经过验证,价值就在那里。
现在在表格视图文件中:
.h文件:
@property(strong, nonatomic)UITextField *finalResult;
.m文件:
@synthesize finalResult;
- (void)viewDidLoad
{
[super viewDidLoad];
UINavigationBar *nav = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, 320, 40)];
UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:finalResult];
[nav pushNavigationItem:navItem animated:FALSE];
[self.view addSubview:nav];
}
finalResult
永远不会使用从上一个视图传递的值进行设置。
任何想法
由于 罗德里戈
答案 0 :(得分:2)
变化:
UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:finalResult];
使用:
UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:finalResult.text];
finalResult
的类型为UITextField
,而非NSString
。
initWithTitle:
要求您提供NSString
而不是UITextField
。
编辑:
当我阅读作为对我的回答的评论的编辑时,你说UITextField *finalResult
是一个零值。这可能是因为您没有按照自己的意愿分配和初始化UITextField。
您需要至少在设置文本的地方之前执行finalResult = [[UITextField alloc] init];
。我建议你在UITableViewController
的初始化函数中进行。