這使我困惑不已。視圖控制器如何知道它將被添加?
說你做:
[self.view addSubview: someController.view];
如何someController知道它的觀點是被加載並調用viewDidAppear等?
我們傳遞的是它的視角而不是控制器。然而一些控制器知道。
如果self.view本身不在窗口的視圖層次結構中,會發生什麼情況。將someController的viewWillAppear等被調用?
實現此目的的一種方法是讓視圖具有指向控制器的弱指針,比如它是委託,然後檢查視圖本身是否是窗口對象的後代。
這是實際執行的方式嗎?如果不是,它是如何實際完成的?即使不是,認爲它是以這種方式實施是否正確?
我的關注點如下: 我很好奇,因爲我想了解這個viewWillAppear會如何顯示。幾個月,我與IOS玩,調用那些明確不知道爲什麼它被稱爲或不叫。有大量的帖子抱怨viewWillAppear/Disapear被調用或未被調用。有些人會被叫兩次。我想知道如何以及何時調用它。我越來越擅長但尚未完成。
嗯......我猜沒有確定的答案。唯一的辦法就是按照你的說法去做,然後寫一個演示項目。我會在蘋果開發者論壇上提問。這使我困惑不已。然後有一個孩子控制器增加了複雜性。 –
@HaryantoCiu您只是好奇,或者當視圖添加到窗口或超級視圖時需要通知您嗎?因爲UIView有'willMoveToWindow:'和'willMoveToSuperview:',你可以通過子類來捕捉它。 – benzado
我很好奇,因爲我想了解這個view如何出現。幾個月,我與IOS玩,調用那些明確不知道爲什麼它被稱爲或不叫。有大量的帖子抱怨viewWillAppear/Disapear被調用或未被調用。有些人會被叫兩次。我想知道如何以及何時調用它。我越來越擅長但尚未完成。 –