我在应用的第一个视图中有一个关闭按钮。我需要在按钮单击时成功关闭应用程序。我试过这两个案子但没有工作。
[[UIApplication sharedApplication] terminate];
[[UIApplication sharedApplication] exit(0)];
答案 0 :(得分:2)
iOS应用程序不应该自行退出;用户使用设备按钮退出/暂停应用程序。有关iOS人机界面指南中此读取Don't Quit Programmatically的更多信息。
如果您的应用已经完成了它的任务,您通常会退出,您只需将应用的状态重置为应用启动时的状态。您可能应该在UI中包含一些提示,以便用户了解正在发生的事情 - 记住,用户应该在这里负责。但是,如果你的应用程序已经达到了合乎逻辑的结论,那么对用户来说最“正确”的事情可能是回到初始状态。你经常会看到游戏 - 一旦游戏完成,应用程序会回到介绍屏幕并等待用户开始另一场游戏。
请注意,您发布的两个代码段都不正确。 UIApplication没有-terminate
方法。 (NSApplication确实有一个-terminate:
方法,但它需要一个参数,显然在iOS中不可用。)你的第二个例子将函数调用语法与消息发送语法混合在一起,没有任何意义 - 我怀疑它甚至会编译。
答案 1 :(得分:1)
类似的事情我也在做,而我想在显示提醒后退出我的应用程序我认为这可能有助于你......
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
NSLog(@"%@",alertView.title);
if(alertView.title== @"Collision failed")
{
if(buttonIndex==0)
{
//gameState = kGameStateRunning;
[self loadView];
[self viewDidLoad];
count=0;
}
else
{
exit(0);
}
}
else
{
if(buttonIndex==0)
{
//gameState = kGameStateRunning;
[self loadView];
[self viewDidLoad];
}
else
{
second_stage *obj=[[second_stage alloc]initWithNibName:@"second_stage" bundle:nil];
obj.count2=count;
[self presentModalViewController:obj animated:YES];
}
}
我正在写exit(0);
答案 2 :(得分:0)
我不太确定但是对于HIG,iPhone应用程序不应该关闭。
但您可以在应用程序的plist中设置UIApplicationExitsOnSuspend 。当您切换到另一个应用程序时,它将导致应用程序不在iOS4下进入后台。 :)
答案 3 :(得分:0)
只需致电exit(0);
无需使用UIApplication实例调用。但是在调用exit方法之前,做任何你需要做的事情,比如保存状态,值,如果有的话等,