应用程序并不总是在主视图中启动

时间:2011-11-04 13:46:34

标签: iphone objective-c xcode ipad view

我想我的应用程序总是在主视图中启动..问题是当你第一次打开应用程序在主视图中启动但是如果我重新打开应用程序时,应用程序在视图中启动我才关闭它。

3 个答案:

答案 0 :(得分:2)

当您按下主页按钮时,您的应用程序将被暂停;它通常不会被终止。因此,当您再次启动它时,它将从之前的状态恢复。

如果您希望终止应用,则需要在目标信息属性(Info.plist)中将“应用程序无法在后台运行”设置为“是”。

如果您想在后台投放,但要在发布时始终转到特定视图,则需要在applicationDidBecomeActive:中进行设置。

答案 1 :(得分:1)

因此项目plist中有一个选项。选项是“应用程序不在后台运行”,将其设置为YES。

答案 2 :(得分:0)

您可以创建如下函数:

- (void) dropWithViewController:(UIViewController*)vc {
    if( [vc modalViewController] ){
        [self dropWithViewController:[vc modalViewController]];
        [vc dismissModalViewControllerAnimated:NO];
    } else if( [vc isKindOfClass:[UINavigationController class]] ){
        [self dropWithViewController:[(UINavigationController*) vc topViewController]];
        UINavigationController *nc = (UINavigationController*)vc;
        for( int i=0;i<[[nc viewControllers] count]-1;i++ ){
            [nc popViewControllerAnimated:NO];
        }
    } else if( [vc isKindOfClass:[UITabBarController class]]){
        [self dropWithViewController:[(UITabBarController*) vc selectedViewController]];
    } else {
        //you're at the last view, on return it will start going back
        return;
    }
}

然后在应用程序进入后台时调用它(参见UIApplicationDelegate, - (void)applicationDidEnterBackground:(UIApplication *)应用程序):

- (void )dropAllViewControllers{
    UIViewController *firstViewController = [[[UIApplication sharedApplication]keyWindow] rootViewController];
    [self dropWithViewController:firstViewController];
}