Навигация по иерархии представлений из модального UIViewController - PullRequest
0 голосов
/ 21 марта 2011

Я разрабатываю приложение, используя несколько UIViewController, связанных с помощью UINavigationController.UINavigationController настроен на то, чтобы иметь главное меню в качестве вида по умолчанию.Главное меню имеет две кнопки, которые при нажатии отображают один из двух других контроллеров UIViewController.Итак, у меня есть простая двухслойная иерархия представлений, которая выглядит примерно так ...

Main Menu (UIViewController)
|
 ---- Menu Option 1 (UIViewController)
 ---- Menu Option 2 (UIViewController)

Теперь я бы хотел, чтобы мой UIViewController в меню 1 отображал другой UIViewController в качестве модального представления - что прекрасно работает.Тем не менее, я также хотел бы иметь возможность перейти непосредственно из этого модального вида в главное меню ...

Main Menu (UIViewController) <--------------
|                                           |
 ---- Menu Option 1 (UIViewController)      |
      |                                     |
       ---- Modal View (UIViewController)   |

Зная, что UINavigationController является стеком, и мне нужно вывести мой модальный вид и следующийitem Мне интересно, как это вообще возможно ...

Есть ли простой способ сделать это без добавления метода обратного вызова в UIViewController для опции меню 1?

Я счастливтакже прислушайтесь к моей реализации - в этом что-то не так!

1 Ответ

2 голосов
/ 22 марта 2011

UINavigationController имеет методы -popToRootViewControllerAnimated: и -popToViewController: animated:, которые можно использовать для возврата стека навигации обратно в определенный контроллер представления.Таким образом, вы можете заставить модальный контроллер отклонить себя и затем позвонить

[self.navigationController popToRootViewControllerAnimated:YES];

. Тем не менее, убедитесь, что выполнение чего-то подобного будет иметь смысл для ваших пользователей.Важным аспектом стиля навигации является то, что пользователь запоминает, как он попал в данный момент в приложении, и он ожидает, что сможет вернуться через те же контроллеры.Если это работает для вашего приложения, то -popToRootViewControllerAnimated: это способ его реализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...