3

出于安全原因,每次打开我的应用程序时,我都需要用户登录。我想做的是当应用程序即将关闭时将其重置为初始视图。我从视图控制器知道我可以使用以下代码:

[[self navigationController] popToRootViewControllerAnimated:NO];

我不确定如何使其适应应用程序委托的工作。

在初始视图中,我将其设置为在 viewDidLoad 上显示登录模式。这似乎只是第一次触发,而不是在使用后退按钮时在应用程序中触发,所以我希望我可以安全地使用这种方法来显示登录屏幕。

为了澄清起见,我知道我将在应用程序委托中执行此操作,我正在寻找可用于告诉应用程序重置视图的特定代码位。

4

4 回答 4

2

一个简单的解决方案可能是阻止您的应用程序在后台运行。当用户关闭它时,这将完全关闭您的应用程序。

我相信要做到这一点,您只需转到项目的 info.plist 并检查“应用程序不在后台运行”为“是”。

祝你好运!希望有帮助。

于 2012-05-08T19:53:44.943 回答
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 上,如果他们在您的应用程序中并且他们与可拖动状态栏交互然后再次关闭它,则始终会调用此方法,这个方法会被击中。我认为这可能是要求他们登录的最佳时机。

我不确定您是否希望用户能够在他们所在的屏幕上恢复,因此您需要决定是否在应用程序进入后台时将其注销。(再次查看应用程序委托类参考,或查看您的应用程序委托方法文件)

于 2012-05-08T19:16:24.843 回答
0

您可以将其设置为在您的AppDelegate.

看着applicationDidBecomeActive:

于 2012-05-08T19:17:41.373 回答
0
    - (void)applicationDidBecomeActive:(UIApplication *)application
    {
        UINavigationController *navController = (UINavigationController *)self.window.rootViewController;
        [navController popToRootViewControllerAnimated:NO];
    }
于 2014-01-19T17:02:18.103 回答