我已經看到一些關於ViewWillAppear
和ViewDidAppear
的文章在某些情況下沒有開火,但我仍然想知道行爲背後的想法是什麼,以及我如何在我的具體情況下解決它。ViewWillAppear不會在模態控制器中調用。這裏有什麼問題?
window
具有由一個deafultUIVieController
處理,幷包含一個按鈕一個視圖。- 單擊此按鈕會以模態方式顯示另一個視圖控制器(VC_MAIN)。
- 根據設置,顯示模態視圖控制器(VC_MAIN)將或者本視圖A或B.視圖
- 視圖A和B由不同視圖控制器(VC_A和VC_B)處理。
- 在VC_A或VC_B中沒有調用任何ViewWill *或ViewDid *方法。
- 我可以通過在相應的ViewDid *和ViewWill *方法中手動調用VC_MAIN來解決此問題。但如果VC_MAIN決定從VC_A切換到VC_B這沒有幫助。 VC_MAIN的視圖*方法將不會被再次調用,也不會VC_A的或VC_B的。
我當然可以在從A切換到B時變鈍VC_MAIN,但我不想。我想讓動畫切換,而不是打開另一個模態視圖。
爲什麼heck不會調用這些方法?它真的超越了我!如果你看看UISplitViewController:它包含兩個子控制器,它可以顯示其他控制器。他們基本上和我試圖做的一樣。蘋果是否將代碼全部放在了代碼中?
「ViewWillAppear」中的大寫字母V是否爲錯字?該方法被命名爲'viewWillAppear:'。由於所有方法名稱都以小寫字母開頭。 – 2011-03-11 14:24:20
啊,對不起。我正在使用MonoTouch。我添加了一個標籤。但是MT和ObjC的問題是一樣的。 – Krumelur 2011-03-11 14:25:56