2012-08-30 69 views
1

我對iOS開發相當陌生,每次啓動應用程序時都有一個需要登錄的應用程序。顯然,恢復應用程序時的默認行爲是返回到上一個打開的視圖。我確實需要這種行爲,但我需要用戶首先進行身份驗證,然後將它們返回到上次打開的視圖,以便他們可以繼續工作。我已經看到其他應用程序這樣做。任何人都可以給我一個指針來實現這個最好的方法嗎?在iOS的應用程序簡歷中顯示登錄對話框

+0

爲什麼你想要求你的用戶每次重新打開你的應用程序時都需要重新驗證? – Maz

+0

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html檢出applicationWillBecomeActive委託方法。或者,您可以在applicatonWillResignActive時註銷。 – Maz

+0

@Maz - 應用程序將包含敏感數據。 – Dennis

回答

3

參見UIApplicationDelegate協議參考:http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html

- (void)applicationDidBecomeActive:(UIApplication *)application 

這個方法被調用,讓你的應用程序知道它從非活動轉移到激活狀態。這可能是因爲您的應用程序是由用戶或系統啓動的。如果用戶選擇忽略將應用程序暫時發送到非活動狀態的中斷(例如傳入電話或SMS消息),應用程序也可以返回到活動狀態。

您應該使用此方法重新啓動應用程序處於非活動狀態時暫停(或尚未啓動)的任何任務。例如,您可以使用它來重新啓動計時器或節省OpenGL ES幀速率。如果您的應用程序之前位於後臺,您也可以使用它來刷新應用程序的用戶界面。

,並要求登錄/密碼,最好的辦法就是使用UIAlertView中...這裏是這樣的對話imlementation的補償[勒特源代碼:https://github.com/digdog/DDAlertPrompt ...您必須插入這樣的事情在你的applicationDidBecomeActive:

DDAlertPrompt *loginPrompt = [[DDAlertPrompt alloc] initWithTitle:@"Sign in to Service"  delegate:self cancelButtonTitle:@"Cancel" otherButtonTitle:@"Sign In"]; 
[loginPrompt show]; 
[loginPrompt release]; 
+0

這是我希望將代碼放在需要的地方,但我不明白我需要做什麼。我可以將根ViewController設置爲我的LoginController,但隨後我將失去用戶的以前的狀態。 – Dennis

+0

你不知道如何處理UIApplicationDelegate實現,或者你不知道如何顯示你的「登錄對話框」? – Tutankhamen

+0

我不知道如何顯示LoginDialog而不是顯示applicationDidBecomeActive中的當前視圖,然後一旦登錄完成,就繼續用戶停止的地方。有沒有辦法獲得對當前活動視圖控制器的引用?如果我自己管理對當前視圖控制器的全局引用,則可以在其上顯示模態視圖。這是做到這一點的適當方式嗎? – Dennis

相關問題