Переход от модального представления к следующему контроллеру представления в родительском модале

#iphone #objective-c

#iPhone #objective-c

Вопрос:

У меня есть MyViewControllerA, который был переведен в режим просмотра контроллером навигации. MyViewControllerA отображает MyModalViewController. В MyModalViewController есть кнопка, при нажатии на которую MyViewControllerB будет помещен поверх MyViewControllerA. Я создал делегат, чтобы MyModalViewController мог сообщить MyViewControllerA, что кнопка была нажата, поэтому MyViewControllerA может поместить MyViewControllerB поверх нее.

Есть ли чистый способ перехода от MyModalViewController к MyViewControllerB. Я попытался отключить модальное представление после нажатия кнопки MyViewControllerB, но это не дает мне такой плавной анимации, когда вы обычно выполняете детализацию с помощью навигационного контроллера.

Ответ №1:

Как вы сказали, у вас есть делегат, который может сообщить ControllerA о нажатии кнопки. Теперь, что вам нужно сделать, это установить флаг в ControllerA (который мы будем использовать, чтобы сообщить A о нажатии кнопки):

  1. Изначально установите этот флаг false (в viewDidLoad ).
  2. Напишите pushController код для B в viewWillAppear методе A с проверкой:

     if(flag)
        push B.
      
  3. При нажатии кнопки в modalViewController установите этот флаг и отклоните этот.
  4. Когда это представление будет отклонено, будет вызван ваш viewWillAppear метод, и он нажмет кнопку B, если установлен флаг.

Если анимация все еще не получается плавной, пожалуйста, используйте viewDidAppear метод, а не viewWillAppear .

Спасибо.