2016-12-24 5 views
0

Когда я запускаю свое приложение, если пользователь уже зарегистрирован (проверка из локальной базы данных), я хочу загрузить другой ViewController. Он работает, но я вижу предыдущий экран в течение секунды и хочу избавиться от этого. Если я поставлю следующий код в viewWillAppear или viewDidLoad, это не сработает. Когда я помещаю его в ViewDidAppear, он работает и загружает следующий экран. Как я могу сделать это, не видя экран в течение секунды?Swift - Загрузите следующий контроллер просмотра, если он уже зарегистрирован

Это работает, но я вижу предыдущий экран в течение секунды.

override func viewDidAppear(_ animated: Bool) { 

    if(userInfo.Confirmed == "Yes") { 

     performSegue(withIdentifier: "skipRegistration", sender: self) 

    } 

} 

Это не работает:

переопределение функ viewWillAppear (_ анимированный: Bool) {

if(userInfo.Confirmed == "Yes") { 

     performSegue(withIdentifier: "skipRegistration", sender: self) 

    } 
} 

И это не работает:

override func viewDidAppear(_ animated: Bool) { 

    if(userInfo.Confirmed == "Yes") { 

     performSegue(withIdentifier: "skipRegistration", sender: 

самость)

} 

} 

Спасибо!

Вы можете сделать этот код в AppDelegate в методе appLaunch и толкать ViewController два времени, без анимации

ПРИМЕЧАНИЕ Поддерживайте ваш ViewController стек правильно.

Непонятно, как нажать viewController.

У меня есть код, вставленный в appDelegate, и я пытаюсь вызвать правильный контроллер для захвата, но не может его найти. У меня есть контроллер панели вкладок, и у меня есть контроллер навигации. Все идет так.

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

Не зарегистрированный пользователь получает эти страницы:

регистрации экрана

регистрации1 экрана

регистрации2 экрана

Соглашение: Экран -> краны на кнопку приёма соглашение затем переходит к:

Agreement segue -> (beginApp segue) to tab bar controller then goes to 

Navigation Controller -> myFirst Screen of the App! 

Everythin g работает, но мне нужно перейти к первому экрану приложения.

Я пробовал использовать этот образец кода, но не могу понять это.

let navVC: UINavigationController = rootView.viewControllers![4] as! UINavigationController 


let vc = navVC.topViewController as! MoreTableViewController 

Надеюсь, это имеет смысл!

+0

Можете ли вы уточнить и указать или назвать каждый контроллер вида? Кроме того, где вы размещаете опубликованный код? – Coder256

ответ

1

Вы можете сделать этот код в AppDelegate в методе appLaunch и толкать ViewController два времени, без анимации

ПРИМЕЧАНИЕ Поддерживайте ваш ViewController стек правильно.

0

Это работает!

// This works to load my tab bar controller and it works! 
     let mainStoryboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
     let initialViewController : UITabBarController = mainStoryboard.instantiateViewController(withIdentifier: "startHere") as! UITabBarController 
     self.window = UIWindow(frame: UIScreen.main.bounds) 
     self.window?.rootViewController = initialViewController 
     self.window?.makeKeyAndVisible() 
Смежные вопросы