#iphone #objective-c #ios #uinavigationcontroller
#iPhone #objective-c #iOS #uinavigationcontroller
Вопрос:
У меня есть UITextField внутри UIViewController, который помещается в стек UINavigationController. UINavigationController представлен как modalViewController.
Если текстовое поле имеет статус первого ответчика (т. Е. Клавиатура включена) при нажатии кнопки «Назад», представление отображается так, как должно, но это приводит к ошибкам панели навигации для всех других контроллеров представления в стеке: кнопки «Назад» на панели навигации имеют неправильный цвет текста и нет резервного изображениязаголовки исчезают, а нажатие других пользовательских кнопок панели навигации не имеет никакого эффекта.
Я попытался отменить статус первого ответчика текстового поля в viewWillDisappear: и viewDidDisappear: .
Комментарии:
1. Мне любопытно, это происходит только в симуляторе, но работает на устройстве?
2. @chown Это происходит на симуляторе и устройстве.
3. Ах, тогда то, что я собирался предложить, не применяется, извините =/.
Ответ №1:
Вместо этого попробуйте следующее
В ViewController вместо того, чтобы «нажимать» modalViewController на NavigationController, просто вызовите
[self presentModalViewController:self.myModalViewController animated:YES];
Затем, когда вы хотите избавиться от него (например, с помощью кнопки в левом верхнем углу представления), выполните действие в MyModalViewController, которое вызывается, например
- (IBAction)doneAction {
[self dismissModalViewControllerAnimated:YES];
}
Комментарии:
1. Извините, я должен был уточнить: ViewController не передается в качестве контроллера модального представления в navigationcontroller. UINavigationController представлен как modalViewController, а ViewController передается на навигационный контроллер.