Как открыть произвольный контроллер представления из любой точки стека навигации - PullRequest
4 голосов
/ 23 сентября 2010

Я работаю над навигационным приложением, и я выбрал его, чтобы я мог вставлять и выключать контроллеры из стека.Это достаточно легко, чтобы двигаться вперед - просто нажмите новый контроллер.И вернуться назад легко, пока вы переходите к контроллеру корневого представления.Есть метод, который называется popToViewController:animated,, но я не создал контроллер, в который я хочу выложить, из моего текущего контроллера представления, поэтому компилятор жалуется, что я не объявил его.Я знаю, что это второй контроллер в стеке (один над корнем).Могу ли я использовать это, чтобы добраться туда?

Ответы [ 2 ]

4 голосов
/ 23 сентября 2010

Свойство viewControllers для UINavigationController имеет viewControllers для того, чтобы они были переданы, так что вы можете использовать это и свои знания о том, какой контроллер представления должен быть вставлен в этот контроллер представления ... здесь есть ссылка UINavigationController ref

1 голос
/ 23 сентября 2010

Я обычно создаю объект NavigationController, который знает как о моем UINavigationController, так и о моих viewControllers.Если вы дадите каждому из ваших VC ссылку на подобный объект или сделаете его одноэлементным, тогда он сможет справиться с такими вещами для вас.

Нет ничего плохого в том, чтобы встраивать логику навигации в контроллеры представления, но это может усложнить их обслуживание, когда они знают о любом другом контроллере представления.Инкапсуляция логики навигации в общем объекте облегчает понимание и поддержку вашего приложения.

ГММВ

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