#iphone #objective-c #uiviewcontroller #modalviewcontroller
#iPhone #objective-c #uiviewcontroller #modalviewcontroller
Вопрос:
Итак, допустим, у меня есть ViewController с именем HomeViewController и другой контроллер представления с именем ListViewController
Я отображаю ListViewController поверх HomeViewController как модальный. Если пользователь нажимает кнопку выключения, а затем возвращается в приложение, modalViewController исчезает.
ListViewController *listViewController = [[ListViewController alloc] init];
[self presentModalViewController:listViewController animated:NO];
[listViewController release];
Примечание: Приложение не запускается с нуля, когда это происходит, и предыдущее состояние все еще видно
Комментарии:
1. Очень странно. Я только что попробовал то же самое с некоторым существующим кодом, и у меня не было проблем. Единственное отличие в том, что я показывал навигационный контроллер, который содержал новый контроллер просмотра: UINavigationController *navCtrl = [[UINavigationController alloc] initWithRootViewController:slNewList]; [[self NavigationController] presentModalViewController: navCtrl анимированный: ДА]; [выпуск navCtrl];
Ответ №1:
Я предполагаю, что под «кнопкой выключения» вы подразумеваете, что пользователь блокирует iDevice.
Я только что попробовал это в одном из своих приложений, и контроллер модального просмотра все еще там после разблокировки. Я предполагаю, что это что-то, не связанное с опубликованным вами кодом. Я бы проверил ваш - (void)applicationWillResignActive:(UIApplication *)application
метод в вашем классе делегата приложения и посмотрел, есть ли там что-нибудь, что могло бы отключить контроллер модального представления.
Комментарии:
1. Вы добавили ViewController непосредственно в окно?
2. Нет, я представляю свой контроллер модального просмотра поверх другого UIViewController точно так, как вы сказали, что сделали.
Ответ №2:
Вот в чем заключалась проблема. Когда пользователь блокирует экран, я удаляю HomeViewController из window
[homeViewController removeFromSuperview];
Когда пользователь снова запускает приложение, я делаю
[windows addSubview:homeViewController];
это выводит HomeViewController поверх его режима