2013-08-07 90 views
1

我正在開發一個應用程序,該應用程序在啓動時顯示登錄屏幕。要登錄用戶,該應用程序會與web應用程序進行通信。應用程序的設置是指定Web應用程序的URL和其他所需信息的位置。有條件地選擇視圖

我希望應用程序確保所有必需的設置都已提供並且在顯示登錄屏幕之前有效。如果設置不完整,我想通知用戶需要的設置不完整。

我可以修改登錄視圖並添加隱藏的錯誤文本,並有條件地隱藏或顯示錯誤文本和登錄字段。但我寧願將錯誤和登錄視圖分開。

此應用程序使用xib文件(無故事板)。它擴展了UIResponder <UIApplicationDelegate>並從我可以告訴這是應用程序的初始視圖控制器正在設置(application:didFinishLaunchingWithOptions:)。

我正在考慮爲不完整的設置場景創建一個新的視圖控制器,並在應用程序委託中將此設置作爲初始視圖設置不完整時。

有沒有更好的或標準的方法來做到這一點?

回答

1

在我們的類似的應用程序,我們的初始視圖控制器是一個加載頁面(與UIActivityIndicatorView和標題/標誌)。我們的應用程序在此頁面上與服務器進行初始通信。

如果他們已經登錄,我們繼續到主視圖控制器。

如果用戶未登錄(可以這麼做),我們繼續登錄視圖控制器。一旦他們登錄,我們將它們發回到開頭。

如果出現錯誤,我們會顯示UIAlertView,然後將它們發回到開頭。

+0

謝謝。我喜歡這個方案,並且同樣實施了我的邏輯。根控制器在顯示微調器和消息時進行檢查。我想在檢查的各個步驟更新消息,所以我正在單獨的線程中運行我的檢查。該線程在主線程上的根控制器上調用方法以在每個步驟完成時更新消息。最後,如果一切正常,則線程在主線程的根控制器上調用方法來呈現登錄視圖控制器。 – septerr

1

我的應用程序使用位於登錄/主屏幕上方的根視圖控制器。我檢查根目錄中的有效會話。如果有一個有效的會話,我將主視圖控制器推入堆棧。如果沒有有效的會話,我將登錄視圖控制器推入堆棧。你可以採取類似的方法。

+0

謝謝。你在做什麼根視圖控制器的方法? – septerr