簡體   English   中英

彈出viewcontroller然后回到RootViewController似乎不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM