Закрыть контроллер модального представления при выходе из приложения

У меня есть контроллер представления (представление A), представляющий модальное представление (B), когда пользователь нажал кнопку, а представление B имеет кнопку для представления представления C. Моя проблема заключается в том, что если пользователь выходит из приложения, когда представление B или C, такое же представление появится при следующем запуске приложения. Есть ли способ закрыть представления B и C при выходе или показать представление A при запуске приложения? Спасибо за вашу помощь


person Cyril    schedule 16.08.2010    source источник


Ответы (1)


Я предполагаю, что под закрытием вы имеете в виду, когда приложение переходит в фоновый режим.

В вашем делегате приложения вы можете с помощью метода applicationDidEnterBackground: отклонить свой контроллер.

Лучшим способом, вероятно, было бы добавить наблюдателя в ваш класс контроллера представления:

- (void) viewDidLoad {
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appClosing) name:@"appClosing" object:nil];
}

- (void) dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"appClosing" object:nil];
    [super dealloc];
}

- (void) appClosing
{
    [self dismissModalViewControllerAnimated:YES];
}

И опубликуйте уведомление в своем делегате приложения:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
     [[NSNotificationCenter defaultCenter] postNotificationName:@"appClosing" object:nil];
}
person vakio    schedule 16.08.2010
comment
Спасибо за Ваш ответ. Я попробовал ваше решение, и оно работает. Я также нашел другое более простое решение, отображающее основное представление при выходе (также я получаю предупреждение при компиляции): - (void)applicationDidEnterBackground:(UIApplication *)application { [self presentModalViewController:viewController.viewanimated:NO]; } Ваше здоровье - person Cyril; 17.08.2010