#iphone #objective-c
#iPhone #objective-c
Вопрос:
У меня есть MyViewControllerA, который был переведен в режим просмотра контроллером навигации. MyViewControllerA отображает MyModalViewController. В MyModalViewController есть кнопка, при нажатии на которую MyViewControllerB будет помещен поверх MyViewControllerA. Я создал делегат, чтобы MyModalViewController мог сообщить MyViewControllerA, что кнопка была нажата, поэтому MyViewControllerA может поместить MyViewControllerB поверх нее.
Есть ли чистый способ перехода от MyModalViewController к MyViewControllerB. Я попытался отключить модальное представление после нажатия кнопки MyViewControllerB, но это не дает мне такой плавной анимации, когда вы обычно выполняете детализацию с помощью навигационного контроллера.
Ответ №1:
Как вы сказали, у вас есть делегат, который может сообщить ControllerA
о нажатии кнопки. Теперь, что вам нужно сделать, это установить флаг в ControllerA
(который мы будем использовать, чтобы сообщить A о нажатии кнопки):
- Изначально установите этот флаг false (в
viewDidLoad
). -
Напишите
pushController
код для B вviewWillAppear
методе A с проверкой:if(flag) push B.
- При нажатии кнопки в
modalViewController
установите этот флаг и отклоните этот. - Когда это представление будет отклонено, будет вызван ваш
viewWillAppear
метод, и он нажмет кнопку B, если установлен флаг.
Если анимация все еще не получается плавной, пожалуйста, используйте viewDidAppear
метод, а не viewWillAppear
.
Спасибо.