无法从VC转移到另一VC,无法弄清原因

时间:2019-06-29 17:35:13

标签: swift

我的应用程序中有一个注册屏幕,在用户写完电话号码并同意条款后,然后单击“注册”,应用程序应将用户移至下一个vc。问题是,尽管看起来一切正常,但该应用程序不会移至下一个屏幕。 这是我的代码:

    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块,并识别了Tabbar,但只是不会移到那里。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

这里有两种可能的麻烦根源。

  • 您在说 public void Init(bool[] boolArray) { BoolDict = new Dictionary<bool, object>(); Dictionary<bool, object> parent = BoolDict; for (int index = 0; index < boolArray.Length; index++) { if (index < boolArray.Length - 1) { Dictionary<bool, object> nestedDict = new Dictionary<bool, object>(); parent.Add(boolArray[index], nestedDict); parent = nestedDict; } else { parent.Add(boolArray[index], true); } } } 。问号的意思是:“如果我没有self.navigationController?,则什么也不做。”如果没有navigationController,则什么也不做。也许您想说的是navigationController

  • 您在说self.present(vc, animated:true)。那不是界面或情节提要中的现有视图控制器。因此,当您移动到那里时,它可能是空的(取决于Tabbar视图控制器的构造方式)。