Вопрос по ios, swift, iphone – Реализация входа / выхода из iOS в Swift

3

Я пытался реализовать поток входа в систему / выхода из системы для приложения для iOS в быстром. Вот моя раскадровка -

В главном контроллере представления (который является синим экраном) у меня есть следующий код, реализованный, чтобы обнаружить, что, если пользователь уже вошел в систему, затем автоматически перенести их в контроллер табличного представления -

переопределить функцию viewDidAppear (animated: Bool) {

    if PFUser.currentUser() != nil {

       self.performSegueWithIdentifier("test", sender: self)

    }

Проблема заключается в том, что когда я выполняю вход или вход через один из зеленых экранов, панель навигации табличного представления выглядит иначе. Кнопка «Выход» отображается правильно, когда пользователь открывает приложение и уже вошел в систему, однако, входя в систему или входя через зеленые экраны, панель навигации содержит кнопку «<Назад».

Может кто-нибудь объяснить, как поток входа / выхода должен быть реализован в раскадровке и программно в Swift. Я видел некоторые примеры Objective-C там, но, кажется, не могу найти один в Swift. Если у кого-то есть хороший пример, это будет очень полезно.

в вашей viewdidload, хорошо, если у вас есть, вы должны вызвать свойство "hidesBackButton" UIViewController, это способ заставить это исчезнуть, если это не ваш вопрос, тогда продолжайте спрашивать или отвечать на этот комментарий. Я бы опубликовал пример кода, но сейчас слишком много дебилов на рысканье. Loxx
нет проблем, рад, что это сработало для вас Loxx
Спасибо, это была одна из проблем, которые у меня были с потоком входа в систему. Я добавил «self.navigationItem.hidesBackButton = true» в viewDidLoad, и он отлично работал! SB2015
Итак, вы пытаетесь удалить кнопку "назад", верно? Loxx

Ваш Ответ

1   ответ
3

< Back кнопка появляется, потому что вы выполняете push-переход от контроллеров представления входа в систему к контроллеру панели вкладок. Лучше всего было бы, чтобы контроллер панели вкладок был вашим начальным контроллером представления. Затем в своемviewDidAppear метод, убедитесь, что пользователь вошел в систему. Если пользователь не вошел в систему, переходите модально БЕЗ анимации на ваш контроллер представления входа в систему. Все это произойдет без уведомления пользователя и позволит настроить раскадровку, которую вы хотите

Благодарю. Проблема в том, что на контроллере табличного представления «Выход» больше не работает. Если в навигационном контроллере как закрыть экран, чтобы он вернулся к синему экрану? Это не проблема с модальным (что я и делал раньше), но с Push, self.dismissViewControllerAnimated (true, завершение: {}); не похоже на работу. SB2015
В конечном счете, это был поток, который работал для меня. Кроме того, спасибо за помощь в устранении проблемы выхода из системы @kiethbhunter! SB2015
dismissViewControllerAnimated() только для отклонения модально представленных представлений. Если вы хотите отклонить заданный контроллер, используйтеUINavigationController методыpopToViewControllerAnimated(), popToRootViewControllerAnimated() или жеpopToViewController(,animated:), Увидетьдокументы на этих методах. keithbhunter
Спасибо! Так должна ли моя новая раскадровка выглядеть следующим образом? ПУТЬ 1: Контроллер панели вкладок ----> Контроллер основного вида (синий экран) - (модальный) -> Экран входа в систему - (модальный) -> Контроллер навигации - (push) -> Вид таблицы; ПУТЬ 2: Контроллер панели вкладок ----> Контроллер основного вида (синий экран) - (модальный) -> Экран регистрации - (модальный) -> Контроллер навигации - (push) -> Просмотр таблицы. Кроме того, как я могу предотвратить отображение панели вкладок на синем экране? Спасибо за вашу помощь! SB2015
Контроллер панели вкладок по-прежнему будет иметь табличное представление в качестве элемента вкладки. Но у него также будет отдельный поток, подобный следующему: Контроллер панели вкладок -> (модальный) -> Контроллер навигации -> (толчок) -> Контроллер основного вида (синий экран). Поэтому, когда приложение запускается, оно будет вызывать viewWillAppear контроллера панели вкладок. В этом методе вы проверяете, вошел ли пользователь в систему. Если пользователь вошел в систему, то вы остаетесь на контроллере панели вкладок и используете приложение как обычно. Если пользователь НЕ вошел в систему, вы перейдете к контроллеру навигации и вашим экранам входа. keithbhunter

Похожие вопросы