我有主視圖控制器(從UINavigationController的衍生),其seques當用戶退出甲開卷塞克返回到主控制器,其然後seques以查看控制器B.如何/何時在彈出另一個視圖控制器後立即推送視圖控制器?
我面臨的問題,以查看控制器A. 是,如果我在主視圖控制器以下代碼:
- (IBAction)unwindToMasterViewController:(UIStoryboardSegue *)segue
{
[self performSegueWithIdentifier:@"SequeToViewControllerB" sender:self];
}
然後我得到錯誤:「可能會導致損壞的導航欄不平衡呼叫開始爲視圖控制器B /端部外觀轉變嵌套推動畫」 。
但是,如果我從unwind seque中刪除對performSeque的調用,並從主視圖控制器上的按鈕手動觸發它,那麼一切正常。因此,這表明問題與時間有關,事實上,我在過去看到類似的問題,這些問題與動畫定時有關(在先前的推送調用完成之前嘗試調用pushViewControllerAnimated:YES等)。
因此,考慮到我試圖在下面的代碼中放置seque,期待didPopItem不會被調用,直到視圖控制器A完成彈出堆棧。
- (void)navigationBar:(UINavigationBar *)navigationBar didPopItem:(UINavigationItem *)item
{
[self performSegueWithIdentifier:@"HomeSeque" sender:self];
}
但是沒有解決它。
所以我怎麼能告訴何時視圖控制器A已經完成彈出堆棧,所以我知道它的安全seque查看控制器B? (假設確實是這個問題,但似乎是由於我的按鈕實驗)。
另外有沒有辦法讓我的操作系統從VC A過渡到VC B對我來說?