Не могу перейти от ВК к другому, не могу понять, почему - PullRequest
0 голосов
/ 29 июня 2019

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

    func handleRegister() {
    if UserDefaults.standard.object(forKey: USER_AGREED) == nil {
        let alert = UIAlertController(title: "Terms and Conditions", message: "Please agree to the terms and conditions to continue", preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (alert) in
            self.showTermsAndConditions()
        }))
        alert.addAction(UIAlertAction(title: "Cancel", style: .destructive, handler: nil))
        self.present(alert, animated: true)
    }else{
        guard let userPhoneNumber = self.mView.textField.text else { return }
        UserDefaults.standard.set(userPhoneNumber, forKey: USER_PHONE_NUMBER)
        let vc = Tabbar()
        self.navigationController?.pushViewController(vc, animated: true)
    }
}

Я попытался установить точку останова, и она попадает в блок else, когда это необходимо, и распознает панель вкладок, но просто не перемещается туда. Есть предложения?

1 Ответ

1 голос
/ 29 июня 2019

Здесь есть два возможных источника неприятностей.

  • Вы говорите self.navigationController?.Знак вопроса означает: «Если у меня нет navigationController, ничего не делай».Если у вас нет navigationController, вы ничего не делаете.Возможно, вы хотели сказать: self.present(vc, animated:true).

  • Вы говорите let vc = Tabbar().Это , а не существующий контроллер представления в интерфейсе или раскадровке.Поэтому, когда вы переместитесь туда, он может быть пустым (это зависит от того, как устроен контроллер представления Tabbar).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...