2013-07-25 81 views
2

答:ChildViewController:使用dismissViewController時有什麼區別?

[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil]; 

B:ParentViewController:

[self dismissViewControllerAnimated:YES completion:nil]; 

是什麼A和B之間有什麼區別?

回答

-2

dismissModalViewControllerAnimated:是一個不推薦使用的API,它在轉移到更多基於塊的API之前由Apple公開。與Vizlix不同,我會說dismissModalViewControllerAnimated:不應該被使用。它不再在蘋果公司維護,或至少不正確,因爲使用它有一些特殊的副作用,在使用presentViewController:animated:completion:dismissViewControllerAnimated:completion:時會消失。舊API只能用於僅針對較舊iOS版本的特定代碼路徑。我所說的副作用至少是iOS6。

最重要的是,基於塊的API提供了舊式API所不具備的功能(例如,功能,從推送中丟失; pop API等)。想象一下,需要創建一個視圖控制器事件鏈。如果不知道動畫何時完成,則由於正在執行動畫而正在進行另一個動畫,因此很有可能會碰到一個錯誤。使用基於塊的API,您可以輕鬆鏈接這些事件。

+1

首先將您的答案與jxdwinter所要求的相匹配!他並沒有問什麼已被棄用,以及API作爲代碼結構維護什麼。他剛纔問的區別?即使每個人都知道[self.parentViewController dismissModalViewControllerAnimated:YES]已被棄用。 LOLZ ;-) – Vizllx