gpt4 book ai didi

asynchronous - swift iOS8 : perform segue after TouchID authentication

转载 作者:行者123 更新时间:2023-11-28 10:25:48 24 4
gpt4 key购买 nike

我有一个带有两个 View 的简单应用程序。加载第一个 View 后,我将执行 Touch ID 传感器身份验证(另请参阅 this 问题):

func testTouchID()
{
if touchIDContext.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error:&touchIDError)
{
touchIDContext.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: reasonString, reply: {
(success: Bool, error: NSError?) -> Void in
if success
{
self.performSegueWithIdentifier("showSecondView", sender: self)
return;
} else {

使用此代码执行 segue,但第二个 View 只出现片刻,然后应用程序返回到第一个 View 。看来canEvalutePolicy里面的代码还没有写完,所以导航 Controller push了第一个view。

我尝试了几种方法,例如:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {

NSOperationQueue.mainQueue().addOperationWithBlock

还有这些方法的组合,但我无法执行到第二个 View 的转场并留在第二个 View 中。

有人能帮忙吗?

谢谢,最好的,圭多

最佳答案

我能够解决这个问题。问题出在导航 Controller 上。

我的解决方案:第一个 View 不再嵌入到导航 Controller 中,它只是与第二个 View 有一个连接。

然后将第二个 View (与其他 View 一起)嵌入到导航 Controller 中,以便在我想要的 View 之间实现导航行为。

重要的是使用 dispatch_async 以便在用户验证后立即“加载”导航 Controller :

if success {
dispatch_async(dispatch_get_main_queue()) {
self.performSegueWithIdentifier("xxx", sender: self)

如果没有 dispatch_async,第二个 View 会出现,但导航 Controller 的导航逻辑会丢失大约 15 秒。

关于asynchronous - swift iOS8 : perform segue after TouchID authentication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26104105/

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