我的项目有以下场景:
[Preview View Controller] --(Modal)--> Navigation Controller --(Top)--> [Photo Setting View Controller]
在 [Preview View Controller] 中,我有一个将执行模态 segue 的按钮(identifier="PreviewToSetting"),我在 [Preview View Controller].m 文件中定义了 prepareForSegue 方法:
- (void)prepareForSegue:(UIStoryboardSegue *) segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"PreviewToSetting"]) {
UINavigationController *unc=segue.destinationViewController;
PhotoSettingViewController *psvc=(PhotoSettingViewController *) unc.topViewController;
psvc.lblAudio.text=@"TEST";
}
}
我在这个过程中设置了断点,并且确实看到上面的块运行没有错误。segue 确实成功执行并引导我进入“照片设置”场景,但是 lblAudio 的文本没有像我认为的那样设置为“测试”,有人知道为什么吗?
更多信息:
- lblAudio 是 PhotoSettingViewController(UITableViewController 子类)中的一个 UILabel Outlet 属性,位于表格部分中的静态表格单元格中
lblAudio 被合成并定义为
@property (strong,nonatomic)IBOutlet UILabel *lblAudio;
lblAudio IBOutlet 已正确绑定,因此如果我在 viewWillAppear 方法中重新定义 text 属性,如 self.lblAudio.text=@"TEST",标签文本将正确更改为 "TEST"。