Форум программистов, компьютерный форум CyberForum.ru

Смена self.navigationController - Программирование iOS/iPhone

Восстановить пароль Регистрация
 
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
26.12.2013, 18:23     Смена self.navigationController #1
Всем привет!

Подскажите, пожалуйста, как правильно будет поступить в данной ситуации:
В приложении, в определенном контроллере есть кнопка "Log out".
Когда пользователь ее нажимает, то мы должны "бросить все", и загрузить один из NavigationController'ов, живущих в сторибоарде, что инициирует показ стартового экрана с возможностью входа.

Первая пришедшая в голову мысль - взять и поменять
Objective-C
1
self.navigationController
на нужный мне, не проходит. Так как это свойство read-only.

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

Как правильно делать в таких случаях?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2013, 18:23     Смена self.navigationController
Посмотрите здесь:

1С Битрикс Смена лицензии Битрикс, смена владельца сайта
Смена свойств объектов по нажатию на кнопку
AutoLayout и смена ориентации
Смена фокуса между TextView
Принудительная смена ориентации экрана в iOS 7
UILabel смена текста каждые 3 секунды Objective-C
Смена ориентции не сопровождается нотификацией
Objective-C Смена кодировки NSString
Смена Root View Controller в Navigation Controller
Смена IP C#
Смена цвета status bar Objective-C
Смена IP

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Монфрид
 Аватар для Монфрид
1185 / 995 / 153
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
27.12.2013, 10:40     Смена self.navigationController #2
вам надо взять навконтроллер и показать его. Дайте контроллеру имя на сториборде. Потом из кода:
Objective-C
1
2
MyNav *nav = (MyNav*)[self.storyBoard instantiateViewControllerWithIdentifier:@"Nav"];
[self presentViewController...:nav];
КОЗАК СЕРГІЙ
4 / 4 / 1
Регистрация: 16.10.2009
Сообщений: 38
27.12.2013, 12:14     Смена self.navigationController #3
Монфрид, Но для такой операции неплохо было б еще и сделать popToRootViewControllerAnimated и уже на рут контроллер добавить сам "MyNav *nav", чтоб в памяти не держать все предыдущие созданые контроллери, так как ми их не будем использовать (хотя это может зависеть от задачи).
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
27.12.2013, 13:47  [ТС]     Смена self.navigationController #4
Спасибо всем!

Почитал после комментария КОЗАК СЕРГІЯ developer.apple.com и вижу такую строку:
"..The presentViewController:animated:completion: method presents the view for the specified view controller object and configures the presenting-presented relationships between the new view controller and the current view controller."

То есть, таки получается, что при выполнении presentViewController мы из памяти текущий стек контроллеров не выгружаем..
Yandex
Объявления
27.12.2013, 13:47     Смена self.navigationController
Ответ Создать тему
Опции темы

Текущее время: 03:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru