iphone — контроллер модального вида исчезает?

#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 поверх его режима