我開始遷移到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標識符是否會評估您所期望的? –