2012-05-08 151 views
3

出於安全原因,我需要用戶在每次打開應用程序時登錄。我想要做的是當應用程序即將關閉時將其重置爲初始視圖。我知道從視圖控制器我可以使用下面的代碼:每次應用程序啓動時顯示初始視圖

[[self navigationController] popToRootViewControllerAnimated:NO]; 

我不知道如何適應從應用程序委託工作。

在初始視圖中,我將它設置爲在viewDidLoad上顯示登錄模式。這似乎只是第一次觸發,而不是在應用程序中使用後退按鈕時,所以我希望我可以安全地使用此方法來顯示登錄屏幕。

爲了澄清,我明白我會在應用程序委託中執行此操作,我正在尋找可用於通知應用程序重置視圖的特定位代碼。

回答

2

一個簡單的解決方案,這可能是從在後臺運行停止您的應用程序。這會在用戶關閉它時完全關閉你的應用。

我相信要做到這一點,你只需要去你的項目的info.plist並選擇「應用程序不在後臺運行」爲YES。

祝你好運!希望有所幫助。

+0

我認爲這可能是我最好的選擇,但在iOS 5中我沒有看到info.plist,我只是添加一個或隱藏了嗎? – Jhorra

+0

它位於'支持文件'文件夾中的Xcode中,通常名爲ProjectName-Info.plist。此外,您可能需要添加「應用程序不在後臺運行」 - 要點擊一個隨機條目,您將看到一個小小的「+」和「 - 」符號,如果您單擊加號,它可以讓您添加一個新條目。 – RachelC

1

在你AppDelegate.m你可以利用下面的委託方法:

-(void)applicationWillResignActive: (UIApplication*)application 

採取措施,通過這裏的其他UIApplicationDelegate方法一看,並找出哪些人會爲你的應用程序最適合:

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html


編輯:

我完成此操作的一種方法是使用委託方法-(void)applicationDidBecomeActive:(UIApplication *)application來顯示您的登錄界面,這在其他地方尚未完成。

當用戶從頭開始打開應用程序,或者從後臺恢復時,或者在iOS5上時,如果它們在您的應用程序中並且它們與可拖動狀態欄進行交互,則會始終調用此方法,然後關閉它,這種方法將被擊中。我認爲這可能是要求他們登錄的最佳時機。

我不確定您是否希望用戶能夠在屏幕上恢復,因此您需要決定是否在應用程序進入後臺時將其註銷。 (請再次參閱應用程序委託類參考,或查看您的應用程序委託方法文件)

+0

看到我上面的解釋,我知道我在那裏做,我正在尋找如何做到這一點。 – Jhorra

+0

不幸的是,他們不能從他們離開的地方開始,他們總是從最初的視角開始。 – Jhorra

0

您可以將其設置爲在您的AppDelegate中顯示某些視圖。

applicationDidBecomeActive:

+1

看到我上面的澄清,我知道我在那裏做,我正在尋找如何做到這一點。 – Jhorra

0
- (void)applicationDidBecomeActive:(UIApplication *)application 
    { 
     UINavigationController *navController = (UINavigationController *)self.window.rootViewController; 
     [navController popToRootViewControllerAnimated:NO]; 
    } 
相關問題