我正在關注Apple's guide來構建自己的自定義容器視圖控制器。它看起來工作得很好,除了一個令人煩惱的問題。中繼外觀方法正確調用自定義容器視圖控制器
我該如何指定我的子視圖控制器在哪個時間將收到viewWillAppear:
和viewDidAppear:
調用(及其對應的disappear
)?
比方說,我有一個幻想的孩子滑入父母或類似的動畫。很自然,我想在動畫開始時調用viewWillAppear:YES
,並在結束時調用viewDidAppear:YES
。但是,默認情況下,在將孩子的視圖添加到家長的視圖中時,同時調用viewWillAppear:NO
和viewDidAppear:NO
。
現在,我知道有beginAppearanceTransition:animated:
和endAppearanceTransition
方法,在iOS 6中添加的,但我想支持的iOS 5,它也好像他們是爲了在先進的情況下使用:
一旦將一個孩子添加到一個容器中,一旦事件發生需要消息被轉發, 會自動將旋轉和外觀回調轉發給子視圖 控制器。這通常是您想要的行爲,因爲它確保 所有事件都已正確發送。但是,有時默認的 行爲可能會按照您的容器的 沒有意義的順序發送這些事件。例如,如果多個子項同時更改其視圖狀態,則可能需要合併所有更改,以便 外觀回調全部同時發生在更多 邏輯順序中。要做到這一點,您需要修改您的容器類別,以承擔外觀或旋轉回調的責任 。
還有transitionFromViewController:toViewController:duration:options:animations:completion:
方法,在適當的時候調用外觀的方法,但它需要在動作二視圖控制器,一般在這裏看出來的地方。當然,我可以做的伎倆,餵它一個虛擬的孩子,但嚴重...
有什麼我失蹤?任何幫助將不勝感激。