我的項目有以下情形:無法設置NavigationController的出口值TopViewController在PreapreForSegue
[預覽視圖控制器] - (木代爾) - >導航控制器 - (上) - > [圖片設置視圖控制器]
在[預覽視圖控制器]中,我有一個按鈕,將執行模式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;
[email protected]"TEST";
}
}
我設置了斷點是程序,並確實看到上面的塊運行沒有錯誤。 Segue確實執行並引導我進入「照片設置」場景,但是lblAudio的文本未被設置爲「測試」,因爲我認爲它應該是,任何人都知道爲什麼?
一些更多的信息:
- lblAudio是在靜態表格單元中PhotoSettingViewController(的UITableViewController子類)的的UILabel出口性的表部分
lblAudio內sycthesized並定義爲
@財產(強,非原子)IBOutlet UILabel * lblAudio;
lblAudio IBOutlet正確綁定,如果我重新定義了viewWillAppear方法中的文本屬性,如self.lblAudio.text = @「TEST」,標籤文本將正確更改爲「TEST」。
謝謝!它像一個魅力!注意到Outlet在賽前準備時尚未初始化。 – user1416492
謝謝,雖然'viewWillAppear'可能爲時已晚。 'viewDidLoad:'已經初始化了'topViewController'。 – bithavoc
感謝您的建議。我會在我的更多項目中堅決執行它:) –