2012-05-08 150 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]; 
    } 
相关问题