gpt4 book ai didi

swift - performSegue(withIdentifier) 在 vi​​ewController 的一个实例中失败

转载 作者:行者123 更新时间:2023-11-28 08:18:16 25 4
gpt4 key购买 nike

我有一个 viewController 来处理对 oAuth API 的用户身份验证。如果 user.defaults 中有存储的 token ,则此 block 运行

FRDStravaClient.sharedInstance().fetchCurrentAthlete(success: { (StravaAthlete) -> Void in
self.performSegue(withIdentifier: "AuthorizeSuccessfulSegue", sender: StravaAthlete.self)
}, failure: { (Error) in
//some failure stuff
})

segue 被触发,用户移动到应用的其余部分。

但是,如果用户在授权后返回到应用程序时需要登录,则此 block 运行:

FRDStravaClient.sharedInstance().exchangeToken(forCode: code,
success: { (response: StravaAccessTokenResponse? ) in
self.performSegue(withIdentifier: "AuthorizeSuccessfulSegue", sender: response?.athlete)
}, failure:{ (error) -> Void in
self.showAuthFailedWithError(error: (error?.localizedDescription)!)
print(error!)
})

这会导致应用程序崩溃并出现错误:'Receiver () has no segue with identifier 'AuthorizeSuccessfulSegue''

两个成功 block 都使用在 Interface Builder 中正确设置的相同标识符。 self 正在引用 AuthViewController。为什么一个工作正常,另一个崩溃?

最佳答案

问题是第一个函数发生在 viewDidLoad 内部,而第二个函数发生在当您从 Safari 返回并授权应用程序时由 appDelegate 调用的 VC 函数中。我正在实例化一个新的 AutViewController 而不是获取当前实例。

关于swift - performSegue(withIdentifier) 在 vi​​ewController 的一个实例中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41991554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com