出于安全考虑,我需要用户在每次打开我的应用程序时登录。我想要做的是当应用程序即将关闭时将其重置为初始视图。我从视图控制器中知道我可以使用以下代码:
[[self navigationController] popToRootViewControllerAnimated:NO];
我不确定如何使其适应app app delegate。
在初始视图中,我将其设置为在viewDidLoad上显示登录模式。这似乎只是第一次触发,而不是在应用程序中使用后退按钮时,所以我希望我可以安全地使用此方法来显示登录屏幕。
为了澄清,我知道我会在app委托中执行此操作,我正在寻找可用于告诉应用程序重置视图的特定代码。
答案 0 :(得分:2)
一个简单的解决方案可能是阻止您的应用在后台运行。这将在用户关闭时完全关闭您的应用。
我相信这样做你只需要去项目的info.plist并选中“应用程序不在后台运行”即可。
祝你好运!希望有所帮助。答案 1 :(得分:1)
在AppDelegate.m中,您可以使用以下委托方法:
-(void)applicationWillResignActive: (UIApplication*)application
在这里查看其他UIApplicationDelegate
方法,找出最适合您应用的方法:
编辑:
我实现此目的的一种方法是使用委托方法-(void)applicationDidBecomeActive:(UIApplication *)application
来显示您的登录界面,但尚未在其他地方完成。
当用户从头开始打开应用程序,或者从后台恢复时,或者如果在iOS5上,例如,如果它们在您的应用程序中,并且它们与可拖动状态栏交互,然后关闭,则始终会调用此方法再次,这个方法将被击中。我想这可能是要求他们登录的最佳时机。
我不确定您是否希望用户能够在他们所在的屏幕上恢复,因此您需要决定是否在应用进入后台时将其注销。 (再次查看应用程序委托类引用,或查看应用程序委托方法文件)
答案 2 :(得分:0)
您可以将其设置为在AppDelegate
显示某些视图。
查看applicationDidBecomeActive:
答案 3 :(得分:0)
- (void)applicationDidBecomeActive:(UIApplication *)application
{
UINavigationController *navController = (UINavigationController *)self.window.rootViewController;
[navController popToRootViewControllerAnimated:NO];
}