2016-08-18 33 views
0

每個人都看到了經典的didFinishLaunchingMethod橫行。iOS應用程序中的複雜啓動邏輯:它應該駐留在哪裏?

現在好了,當像CloudKit一樣啓動時,我們還有其他事情需要諮詢,也就是說,更糟糕的是,應用程序委託似乎是錯誤的地方,即使是最基本的東西,比如詢問他們是否有帳戶並建立同步或抓取快照。

我討厭這些東西會進入應用程序啓動的第一個控制器的想法,從我以前的日子裏閃回到4GL tinkertoys。我們不得不尊重故事板的流程。在這方面我沒有發現任何東西。可悲的是,蘋果最廣泛的例子是Lister,並不是最佳實踐的重要來源。

回答

1

它適用於應用程序委託來觸發此工作的開始,但不處理結果。通常你想要某種方式來顯示進度/錯誤/請求用戶信息。因此,擁有某種形式的'splash'視圖控制器可以處理從啓動映像到這個過程的轉換,並控制流入主應用程序的操作非常方便。通常這種事物的邏輯在其他情況下是可重用的,所以部分應該在其他控制器類中。故事板可以使飛濺VC成爲初始控制器,應用程序委託人可以創建數據控制器類,並將其傳遞給處理邏輯的數據控制器類,並將結果更新爲VC(委託)。通常情況下,VC會將數據控制器傳遞到它顯示的後續VC上,儘管這當然不是必需的。

相關問題