我正在使用一个有一个表视图控制器的应用程序。当用户单击单元格时,我想在单独的视图控制器中显示该单元格的细节。我这样做的第一次尝试如下:
CellViewController * cvc = [self.storyboard instantiateViewControllerWithIdentifier:@"cellVC"];
[cvc.name setText:fName];
[cvc.homeNum setText:hNum];
[cvc.mobileNum setText:mNum];
[self.navigationController pushViewController:cvc animated:NO];
但是,这会生成一个没有更新值fName,hNum和mNum的视图控制器。我想我有两个问题: 1)instantiateViewControllerWithIdentifier与PerformSegueWithIdentifier在良好实践方面是否存在很大差异。 (我现在使用的是前者因为我不喜欢segues一样多) 2)如果instantiateViewControllerWithIdentifier是一种可行的方法,为什么这些值没有被更新?而不是原始的标签'只是出现
注意:我看过performSegueWithIdentifier vs instantiateViewControllerWithIdentifier我认为这个问题略有不同/他们并没有真正回答我的问题。他们似乎也声称前一种方式是不好的做法,但我看到其他人用这种方式的情况,所以我很困惑。
由于
答案 0 :(得分:0)
像cvc.name
这样的contols问题没有初始化,因为在实例化视图控制器之后没有加载。
在CellViewController中声明属性,如:
@property (nonatomic, strong) NSString * nameString;
并在CellViewController.m
中- (void) viewDidLoad {
[name setText:_nameString];
}