Swift 3: нужно ли связывать функцию viewDidAppear в раскадровке?

Я новичок в Swift. Я пытаюсь создать базовую систему входа и создания учетной записи в проекте Swift 3 с одним представлением.

В моем ViewController.swift у меня есть функция viewDidAppear:

override func viewDidAppear(_ animated: Bool) {
    self.performSegue(withIdentifier: "loginView", sender: self)
}

Вот моя основная раскадровка: Main.storyboard

При открытии приложения я хочу, чтобы сначала открывалась страница «защищенные данные», а затем проверялась, вошел ли пользователь в систему. Если нет, должна появиться страница входа. Однако я не знаю, как этого добиться. Я пытался связать навигационный контроллер, но я не вижу эту функцию в качестве опции.

Прямо сейчас, когда я запускаю симулятор, отображается только страница «защищенные данные».

Что я делаю? Кроме того, что-то не так с моей функцией viewDidAppear?


person JCmeister    schedule 10.12.2016    source источник


Ответы (2)


Если вам действительно нужен этот навигационный поток

При открытии приложения я хочу, чтобы сначала открывалась страница «защищенные данные», а затем проверялась, вошел ли пользователь в систему.

тогда вы должны организовать свой ViewController.swift вот так

class ViewController: UIViewController {

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        if /* userDidLogin... REPLACE WITH YOUR CODE*/ {
            performSegue(withIdentifier: "ShowLogin", sender: nil)
        }
    }

}

Конечно, вам также необходимо:

  1. открыть раскадровку
  2. выберите переход, который подключает ViewController к контроллеру входа в систему
  3. присвоить ему имя ShowLogin
person Luca Angeletti    schedule 11.12.2016

Убедитесь, что установлен флажок «Наследовать от цели».

person anson    schedule 23.08.2017