2011-11-30 92 views
2

当我关闭我的应用程序(通过HOME按钮)并再次打开它时,如何强制应用程序从最初的视图重新启动,而不是从最后显示的位置(之前它被关闭了)?这是项目中的一个设置吗?从头开始重新启动iphone应用程序

回答

8

设置应用程序的info.plist键:UIApplicationExitsOnSuspend为True。

+0

我喜欢你的答案,但我认为提问者希望应用程序保持多任务处理,但只是从根视图控制器开始.... – Sid

+0

hotpaw2是正确的。这就是我一直在寻找的东西。但是,我选择了“应用程序不在后台运行”并将其设置为YES。 – sexitrainer

1

这是由多任务引起的,即应用程序没有正常退出。

为了确保其持久性有机污染物回来,试试这个在applicationWillEnterForeground,像这样:

- (void)applicationWillEnterForeground:(UIApplication *)application 
{ 
    [self.navigationController popToRootViewControllerAnimated:NO]; 
} 

还是一个非常快速和肮脏的方式,是真正退出应用程序,当它进入背景(注意,这可能是不是最好的方法)。

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    [[NSThread mainThread] exit]; 
    // OR 
    exit(0); 
} 
+3

“退出(0)”的问题是苹果会拒绝。 – Louie

+0

好吧,试试我的另一个解决方案或者'[[NSThread mainThread] exit];' –

1

查找从手机让你知道手机“开始活跃起来”的,如果应用程序正在运行才会发生,然后发送到后台的通知,然后再次拉升。 一旦你知道它已经变得活跃,你可以推动你的主页视图。

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { 
    if (application.applicationState == UIApplicationStateInactive) { 
     //application has been sent to the background 
    } 

    if(application.applicationState == UIApplicationStateActive) { 
     //The application has become active an alert view or do something appropriate. 
     //push home view here. 
    } 
} 
+0

您也可以像Alex指出的那样使用应用程序委托方法,但不要尝试退出。你应该改变用户提供的信息。应用程序委托和通知同样适用。 – TigerCoding