2012-02-02 45 views
0

我一直在尋找網絡,我發現了很多很好的例子來說明如何爲你的iPhone應用程序創建一個登錄頁面。然而...然後沒有一個滿足我的要求,因爲我是新的iPhone開發(我知道Java/C/C++和Objective-C),所以編程本身不是問題。問題是在哪裏放置代碼和什麼設計模式使用..在iPhone應用程序中實現登錄頁面的最佳方式是什麼?

我的應用程序是一個基本的tabbar控制器有3個選項卡,可以包含導航控制器,但這並不重要..它是我感興趣的tabbar控制器之前的部分,即需要向Lotus Domino服務器驗證用戶身份。我有authenification代碼的工作,所以這不是問題要麼..

順便說一句,我集中在IOS5和使用故事板..

我在哪裏把「檢查,如果用戶通過身份認證「代碼?多米諾服務器將在1小時後將用戶註銷,所以如果用戶打開了應用程序(在後臺),那麼下載數據的代碼將在用戶沒有被告知會話已過期時終止。

因此這裏是我想要的..

  1. 當應用程序啓動時,顯示登錄頁面。這是現在工作與登錄視圖控制器作爲初始控制器,並模式segue到tabbar控制器..

  2. 下次啓動應用程序(無論是從後臺或從新的用戶已關閉它完全),檢查用戶名和密碼存儲在userdefaults,然後只需在後臺登錄,如果失敗(密碼已更改或其他故障),則再次顯示登錄視圖控制器..

所以總結起來,我在哪裏把「第2部分」的代碼?我有一個使用委託的單獨的認證器類,我可以使用這個類來執行認證,如果一切都很好,它會回答。

我把這個放在AppDelegate代碼中嗎?如果我把它放在tabbar視圖控制器中的一個,那麼用戶在啓動2小時後打開tab2時可能會出現問題,如果檢查是在tab1中,則選項卡2將失敗。是否應該將代碼放入所有的tabbar視圖控制器? Naaa,這是醜陋的..

我傾向於AppDelegate(appdidbecomeactive),但可以用作委託在我的authenticator類?

這是有點長,很抱歉,但我需要充分地解釋我的問題,使民衆能理解我的需要..

謝謝您的幫助。這是我的第一篇文章,但是這論壇是太棒了:)

+3

TL;博士 - 聽起來像是你需要仔細閱讀[由艾倫·希爾加斯寫的簡介IOS編程書籍之一(HTTP://www.amazon .com/Aaron-Hillegass/e/B001JSJIWI) – 2012-02-02 16:36:55

回答

0

我肯定會把第一部分和第二部分代碼放在AppDelegate中。

這可以讓你從AppDelegate中中創建的應用程序啓動相應的視圖 - 控制和去除tabbarcontroller如果認證超時等

我不知道你的模式SEGUE到tabbarcontroller雖然(I」雖然不熟悉故事板)。 Modal意味着你將無法在TabBar控制器的頂部呈現任何其他視圖。我想這聽起來像是以編程方式創建logincontroller和tabbarcontroller並根據您的AppDelegate的需要直接在應用程序的主窗口中添加/刪除它們會更合適。

我會告訴AppDelegate在選項卡被更改或數據加載時檢查登錄狀態。

+0

問題是,當使用故事板時,我不認爲appDelegate已經用得這麼多了......我可能是錯的..但是,這是我的解決方案,我的應用程序從tabcontroller開始,每個應用程序的所有viewcontroller,只使用一個singleton類來驗證登錄,如果登錄不正確或超時,那麼它會顯示一個模式登錄頁面,以回答ba通過委託給調用者,如果登錄成功或不...這似乎工作,並且是一個相當簡單的解決方案,我猜:) – 2012-02-16 11:57:03

+0

是的,一個很好的解決方案,我在一個應用程序中使用這種方法。 – ader 2012-02-16 14:59:20

相關問題