簡體   English   中英

從一個視圖控制器轉換到另一個視圖控制器時,視圖方法的調用順序是什么?

[英]In what order are view methods called when transitioning from one view controller to another?

當我從一個視圖控制器(讓我們稱之為MasterViewController )轉換到另一個視圖控制器(稱為DetailViewController )時,每個控制器上的viewWillDisappear:viewWillAppear:等方法的調用順序是什么?

我懷疑當我的主視圖消失時調用的一些清理代碼會干擾我的詳細視圖中的初始化代碼。 我查看了Apple的文檔,但找不到任何涉及多個視圖控制器的信息。

我創建了一個簡單的基於UINavigationController的項目,並添加了一些NSLog語句來找出它們被調用的順序。

  1. 掌握prepareForSegue:
  2. 詳細viewDidLoad
  3. Master viewWillDisappear:
  4. 詳細信息viewWillAppear:
  5. 顯示新視圖(帶或不帶動畫)
  6. Master viewDidDisappear: 動畫結束后)
  7. 詳細信息viewDidAppear:

但是,使用UITabViewController在視圖之間切換時,順序是不同的:

  1. SecondTab viewDidLoad
  2. SecondTab viewWillAppear:
  3. FirstTab viewWillDisappear:
  4. 將顯示新視圖。
  5. FirstTab viewDidDisappear:
  6. SecondTab viewDidAppear:

因此,您似乎無法始終依賴於以相同順序發生的這些事件 - 它可能會根據您正在轉換的視圖控制器的性質而有所不同。

我在這里錯過了什么重點嗎?

暫無
暫無

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

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