![](/img/trans.png)
[英]Popping ViewController doesn't call viewWillAppear when going back
[英]Popping viewcontroller and then back to RootViewController doesn't seem to work
我有一個應用程序,在堆棧上推送四個viewcontrollers。 在第四個視圖控制器中,我做了一個PopViewController,所以我應該回到第三個viewcontroller,在viewWillAppear方法中,我做一個PopToRootViewController。 這不會讓我回到正確的第一個viewcontroller。 代碼很簡單,只是一個
[self.navigationController pushViewController:nextController animated:YES]
在前3個視圖控制器中的每一個中,以及在第四個中
[self.navigationController popViewControllerAnimated:YES].
在第三個viewcontroller中,我有一個viewWillAppear方法,它執行:
[self.navigationController popToRootViewControllerAnimated:YES].
在瀏覽視圖時,我得到以下信息:
啟動應用:
Back: Title: FirstLevel
按確定:
Back: FirstLevel Title: SecondLevel
按確定:
Back: SecondLevel Title: ThirdLevel
按確定:
Back: ThirdLevel Title: FourthLevel
按OK:彈出1然后彈回root:
Back: FirstLevel Title: ThirdLevel
如果我現在按OK:
Back: ThirdLevel Title: SecondLevel
如果這令人困惑,我很抱歉。 我應該能夠彈出一個視圖控制器,然后立即彈回到根目錄嗎?
謝謝你的幫助。
正如Mark建議的那樣,你應該使用你的-popToRootViewController
視圖控制器中的-popToRootViewController
而不是第3個視圖控制器,因為你的動機是將它彈出到根視圖控制器。
但是如果您仍然想要出於某些匿名原因而實現此功能,那么在第3個viewcontroller中,使用:
viewDidAppear
方法中的[self.navigationController popToRootViewControllerAnimated:YES]
,而不是viewWillAppear
。
我希望它有效:)
似乎沒有任何理由回彈查看控制器3,因為您甚至在視圖控制器3的視圖出現之前嘗試轉到根。 只需發送-popToRootViewControllerAnimated:
即可查看控制器4。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.