我的项目有以下情况:
[预览视图控制器] - (模态) - >导航控制器 - (顶部) - > [照片设置视图控制器]
在[预览视图控制器]中,我有一个按钮,它将执行模态segue(标识符=“PreviewToSetting”),我在[预览视图控制器] .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的文本未设置为“TEST”,因为我认为它应该是,任何人都知道为什么?
更多信息:
lblAudio被sycthesized并定义为
@property(强,非原子)IBOutlet UILabel * lblAudio;
lblAudio IBOutlet正确绑定,如果我重新定义viewWillAppear方法中的text属性,如self.lblAudio.text = @“TEST”,标签文本将正确地更改为“TEST”。
答案 0 :(得分:0)
由于属性是segue时的IBOutlet,因此未初始化。所以尝试做类似
的事情为NSString *labelText
等标签文字创建一个属性,并将值@"TEST"
分配给该属性,并在viewWillAppear:
方法中将其指定给标签将执行您的工作