当 运行 使用 Swift 和 Parse 时,Segues 不执行
Segues not executing when run using Swift and Parse
所以我设置了我的应用程序来确定是否有用户以及如果有或没有该怎么做。此外,如果他们已经验证了他们的帐户(通过 phone 号码和短信),我的问题是当我 运行 应用程序没有任何反应。它加载然后不执行任何 segues。所有 segue 标识符都正确命名。 currentUser 变量有值但 numberIsVerified 没有值。我确定这与它有关,但不确定是什么或如何解决它。
确定将用户带到何处的代码:
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(animated: Bool) {
var currentUser = PFUser.currentUser()
if currentUser == nil || currentUser!["phoneNumberVerified"] == nil {
performSegueWithIdentifier("showInitialView", sender: self)
} else {
if let numberIsVerified = currentUser!["phoneNumberVerified"] as? Bool {
if currentUser != nil && numberIsVerified == false {
performSegueWithIdentifier("showVerifyUserView", sender: self)
} else if currentUser != nil && numberIsVerified == true {
performSegueWithIdentifier("showMyEventsView", sender: self)
} else {
performSegueWithIdentifier("showInitialView", sender: self)
}
}
}
}
}
您只能在视图完全加载后使用 performSegueWithIdentifier
。所以你不能从 viewDidLoad 继续。要解决此问题,请将您的 segue 移至 viewDidAppear:
override func viewDidAppear(animated: Bool) {
}
更新:我创建了一个简单的应用程序来为您执行 segue 以将您的代码与以下内容进行比较:
所以我设置了我的应用程序来确定是否有用户以及如果有或没有该怎么做。此外,如果他们已经验证了他们的帐户(通过 phone 号码和短信),我的问题是当我 运行 应用程序没有任何反应。它加载然后不执行任何 segues。所有 segue 标识符都正确命名。 currentUser 变量有值但 numberIsVerified 没有值。我确定这与它有关,但不确定是什么或如何解决它。
确定将用户带到何处的代码:
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(animated: Bool) {
var currentUser = PFUser.currentUser()
if currentUser == nil || currentUser!["phoneNumberVerified"] == nil {
performSegueWithIdentifier("showInitialView", sender: self)
} else {
if let numberIsVerified = currentUser!["phoneNumberVerified"] as? Bool {
if currentUser != nil && numberIsVerified == false {
performSegueWithIdentifier("showVerifyUserView", sender: self)
} else if currentUser != nil && numberIsVerified == true {
performSegueWithIdentifier("showMyEventsView", sender: self)
} else {
performSegueWithIdentifier("showInitialView", sender: self)
}
}
}
}
}
您只能在视图完全加载后使用 performSegueWithIdentifier
。所以你不能从 viewDidLoad 继续。要解决此问题,请将您的 segue 移至 viewDidAppear:
override func viewDidAppear(animated: Bool) {
}
更新:我创建了一个简单的应用程序来为您执行 segue 以将您的代码与以下内容进行比较: