我开始迁移到Xcode 9 &今天iOS 11构建。iOS 11:self.performSegue()不工作
在我storybased的应用程序,下面的代码:
self.performSegue(withIdentifier: Const.UI.Segue.showIntro, sender: self)
运行在所有的iOS以前(只是与iOS 10.3,10.0,9.0验证)罚款,但在iOS的11不运行
附加代码:
private func handleSuccessfulLogin() {
self.log.info("Logged In")
DispatchQueue.main.async(){
self.performSegue(withIdentifier: Const.UI.Segue.showIntro, sender: self)
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
print("starting segue " + segue.identifier!)
}
override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
print("should perform segue")
return true
}
打印输出(iOS的11):
> Logged In
> starting segue showIntroSegue
预期结果:新控制器推
实际结果iOS的11:什么都没有发生
任何想法的原因可能是什么?
功能handleSuccessfulLogin()
是在用登录名AWSCognito/AWSFacebookSignInProvider
成功登录后调用的。在iOS上有一个新的弹出continue with facebook
,我怀疑是原因,但没有办法验证它..在第二次调用这个弹出窗口不会出现(因为facebook已经被授权),然后segue正确触发。
请注意,我也试过这段代码,结果相同。
OperationQueue.main.addOperation {
[weak self] in
self?.performSegue(withIdentifier: Const.UI.Segue.showIntro, sender: self)
}
从您的故事板中删除segue并重新添加。 –
@RashwanL不会悲伤 –
那个segue标识符是否会评估您所期望的? –