Ste*_*eve 3 iphone uiviewcontroller uinavigationcontroller ios4 ios
在我的应用程序中,我为视图添加了一个标签,将其连接到插座,但是当我第一次从另一个视图控制器分配此插座然后调用pushViewController以显示它时,没有显示任何内容.这是推送显示标签的下一个视图之前的代码:
CustomViewController *vc = [[CustomViewController alloc] init];
vc.lbl_price.text = self.label_price.text; // lbl_price is defined as a property in CustomViewController and label_price is defined in current view controller
[self.navigationController pushViewController:vc];
Run Code Online (Sandbox Code Playgroud)
在CustomViewController viewDidLoad方法中,我添加了这条指令,看它是否应该有效
NSLog(@"Price=%@",lbl_price); // it actually prints out what was previously assigned
Run Code Online (Sandbox Code Playgroud)
但它并没有显示在标签上!
知道为什么吗?
斯特凡
Vla*_*mir 18
即使创建了视图控制器,其视图层次结构也可能不会(因此所有子视图仍然为零),出于优化原因,在您尝试实际访问控制器视图之前可能无法加载它.您有两种方法可以解决您的问题:
将所有值存储在单独的非UI变量中,并将它们分配给UI组件,并显示控制器:
// Before push controller
vc.myPriceText = self.label_price.text;
// In controller's viewWillAppear:
self.lbl_price.text = self.myPriceText;
Run Code Online (Sandbox Code Playgroud)进行[vc view]调用以强制控制器加载其视图层次结构:
CustomViewController *vc = [[CustomViewController alloc] init];
[vc view];
vc.lbl_price.text = self.label_price.text;
[self.navigationController pushViewController:vc];
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
2535 次 |
| 最近记录: |