我注意到iOS 5引入了額外的參數和方法來檢測視圖控制器的演示動畫何時完成。presentModalViewController檢測動畫完成
有沒有辦法在較早的版本,如iOS 4.x做到這一點?
我已經使用presentModalViewController
來呈現控制器,我注意到你不能調用dismiss方法,除非動畫已經完成。
那麼我該如何檢測動畫何時完成,然後才能解除它?
我注意到iOS 5引入了額外的參數和方法來檢測視圖控制器的演示動畫何時完成。presentModalViewController檢測動畫完成
有沒有辦法在較早的版本,如iOS 4.x做到這一點?
我已經使用presentModalViewController
來呈現控制器,我注意到你不能調用dismiss方法,除非動畫已經完成。
那麼我該如何檢測動畫何時完成,然後才能解除它?
我只是試圖解僱一個模態提出的VC,在viewDidLoad,viewWillAppear和viewDidAppear。前兩名沒有骰子,但解僱工作在視圖中出現。 (在動畫完成後會調用這種方法是有道理的)。
而且,您可能已經知道這一點,但如果您不這樣做:您不必從提交它的VC中解除模態提供的VC。您的「等待網絡」VC可以檢查viewDidAppear中的連接狀態,並在連接完成時關閉自身。
太棒了...謝謝你。希望它能幫助更多的人。我會盡量在稍後用我的編碼解決方案更新這篇文章。 – blissweb 2012-03-19 12:47:01
沒有確切的方法可以做到這一點 - 您可以期待的最好方法是使用呈現視圖控制器中的viewDidDisappear:
。請確保使用布爾實例變量來確定您是否正在消失,因爲模態視圖控制器正在呈現或其他原因。老實說,如果你正在構建新的軟件,我堅決鼓勵你將iOS 5和更高版本作爲目標。絕大多數人已經升級,其餘的將在幾個月內;沒有理由爲新項目支持iOS 4。
謝謝。我會試一試。我想我也可以在模態加載後發回消息。任何想法「viewWillAppear」和「viewDidLoad」塊或哪些其他只會在動畫完成後觸發*的內容? – blissweb 2012-03-19 03:47:22
這是一個非常好的問題 - 蘋果關於[View Controller Life Cycle]的文檔(https://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ViewLoadingandUnloading/ViewLoadingandUnloading.html#//apple_ref/doc/uid/TP40007457-CH10-SW1)非常全面。我建議閱讀表4-1以瞭解放入哪種方法的邏輯。如果您使用xib而不是故事板,那很好,本指南仍然適用。 – 2012-03-19 12:38:32
出於好奇,價值是什麼樣的呈現,然後立即駁回模態視圖控制器? – CodaFi 2012-03-18 05:10:21
噢...我提出了一個請稍候屏幕,並執行一些可能需要一分鐘左右的網絡請求。如果連接出現錯誤,有時會在動畫完成之前檢測到它。如果我解僱它,那麼它似乎忽略了這個命令。 – blissweb 2012-03-18 15:09:55
如果您只想向他們展示您在長時間運行的流程完成時正在做些什麼,例如從Web上獲取一些數據,請嘗試使用['SVprogressHUD'](https://github.com/samvermette/SVProgressHUD) 。它將禁用界面並顯示一個'UIActivityIndicator'。 – 2012-03-18 22:19:56