Приложение не всегда запускается в главном окне - PullRequest
1 голос
/ 04 ноября 2011

Я бы хотел, чтобы мое приложение всегда запускалось в главном окне .. Проблема в том, что при первом открытии приложение запускается в главном окне, но если я закрываю приложение при повторном открытии, приложение запускается в представленииЯ был прежде, чем закрыть его.

Ответы [ 3 ]

2 голосов
/ 04 ноября 2011

Ваше приложение приостанавливается при нажатии кнопки «Домой»; это обычно не заканчивается. Следовательно, при повторном запуске он возобновляет работу из предыдущего состояния.

Если вы хотите, чтобы ваше приложение было закрыто, вам нужно установить "Приложение не запускается в фоновом режиме" в YES в свойствах вашей целевой информации (Info.plist).

Если вы хотите работать в фоновом режиме, но при запуске всегда переходить к определенному виду, вам нужно настроить его в applicationDidBecomeActive:.

1 голос
/ 04 ноября 2011

Таким образом, в plist проекта есть опция. Опция "Приложение не запускается в фоновом режиме", установите значение ДА.

0 голосов
/ 04 ноября 2011

Вы можете создать такую ​​функцию:

- (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 *) application):

- (void )dropAllViewControllers{
    UIViewController *firstViewController = [[[UIApplication sharedApplication]keyWindow] rootViewController];
    [self dropWithViewController:firstViewController];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...