2014-01-26 2 views
1

Я нахожусь на ранней стадии создания приложения и столкнулся с проблемой. По сути, я использую Parse SDK для регистрации/входа в бэкэнд. LoginViewController - это контроллер начального представления. При нажатии «signup», signupViewController представляется модально. Как только пользователь войдет в систему, я хочу, чтобы контроллер панели вкладок содержал остальную часть приложения, которое должно быть представлено модально.Увольнение контроллера модального вида и THEN, выполняющего segue

Вот раскадровка до сих пор:

Storyboard Image

Теперь, когда пользователь входит в систему, я выполняю ручной SEGUE между логином и регистрации. Это работает отлично. Мой вопрос в том, что было бы лучше всего делать то же самое для контроллера вида регистрации? Должен ли я создать ДРУГОЕ ручное разделение между ним и контроллером панели вкладок или каким-то образом я могу сначала его отбросить, а затем выполнить segue из контроллера входа в систему.

Я искал ответ в документации Apple и на нескольких других сайтах без каких-либо успехов. Любая помощь вообще по этому вопросу была бы оценена очень!

+1

Почему вы выбрали modal segue для signupViewController? Вы можете сделать push-сегу для регистрации экрана и еще одного нажатия на следующий контроллер tabBar. – Wisors

+0

Это то, что я изначально сделал, но я подумал, что имеет смысл иметь содержимое приложения, уложенное поверх экранов входа, так что когда пользователь выходит из системы, все контроллеры детского вида освобождаются. Это было правильное предположение? – Akyri

+0

Вы можете сделать -popToRootViewControllerAnimated: в случае выхода из системы и всех дочерних контроллеров просмотра также будут освобождены. – Wisors

ответ

0

Существует вариант, который я могу предложить. Вы можете создать экземпляр вида контроллера, используя подход

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil]; 
id controllerToPush = [storyboard instantiateViewControllerWithIdentifier:@"desiredViewController"]; 

(MainStoryboard_iPhone и desiredViewController указаны в интерфейсе строителя). Затем нажмите этот контроллер. Например, если вы используете шаблон навигации контроллера:

[self.navigationController setViewControllers:@[controllerToPush] animated:YES]; 
1

Вы могли бы иметь loginViewController быть «в курсе» о положении вещей и обрабатывать маршрутизацию. Например:

  • добавить логическое свойство в глобальном масштабе, возможно, в AppDelegate, названный как signedUp, по умолчанию к ложным
  • входа пользователя в, регистрация ВХ открыт
  • признаки пользователя вверх, на успех, установить опору signedUp к истинному
  • знаку вверх ВМ выталкиваются, пользователь возвращается на логин ОГО
  • в loginvc viewDidAppear проверить, если signedUp = верно и для непосредственно перейти контроллер панели вкладок

Другим вариантом было бы объединение контроллеров входа и знака в один и отображение/скрытие элементов управления в форме в зависимости от режима, что упростит ваш поток, имея только один vc, с которым нужно иметь дело.

+0

Я собираюсь использовать это когда-нибудь. Спасибо вам за это – AndrewSB

Смежные вопросы