簡體   English   中英

我如何知道視圖控制器是否由於推送或 UINavigationController 上的彈出后視圖重建而加載?

[英]How can I know if a viewcontroller is loaded because of a push or because of a view reconstruction after a pop on a UINavigationController?

我使用帶有幾個視圖控制器的 UINavigationController。 其中一個 viewcontrollers 是在loadview:中以編程方式構造的,它會做一些自定義動畫來從前一個 viewcontroller 進行轉換。

所以這些動畫應該只在視圖控制器被推送時發生,因為在推送之前創建視圖控制器時 loadview 只被調用一次,這通常都可以正常工作。

但是,當其他一些視圖控制器被推送,並且 memory 變得緊張時,系統會自動卸載視圖並在其他視圖控制器彈出后再次出現時重新構建。
當然,我不希望發生過渡 animation,因為如果他們不跟隨前一個視圖控制器的推動,它們看起來會很奇怪。

我可能會保留一些 state 信息,或發送通知,我自己知道是否因為 pushViewController 或 popViewController 而調用了 loadview,但我想知道是否有任何內置方法可以知道 loadView 是否發生,因為視圖是第一個構造的時間,還是因為它以前被清除過?

不,你在 UIViewController 中沒有這樣的內置方法,但你可以依靠 -(void)viewDidUnload,知道你的視圖不應該在 viewDidLoad 中顯示你的 animation。 所以是的,這意味着保留一些 state 信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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