我的应用程序中有一个注册屏幕,在用户写完电话号码并同意条款后,然后单击“注册”,应用程序应将用户移至下一个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,但只是不会移到那里。 有什么建议吗?
答案 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视图控制器的构造方式)。