从打开的导航抽屉呈现视图控制器时挂起

Posted

技术标签:

【中文标题】从打开的导航抽屉呈现视图控制器时挂起【英文标题】:Hang when view controller is presented from an open navigation drawer 【发布时间】:2016-05-04 21:26:14 【问题描述】:

我有一个主视图控制器和 SWRevealController 抽屉。 当我从主视图控制器上的按钮呈现视图控制器(zbar 扫描仪)时,如果导航抽屉关闭,则一切正常。 如果导航抽屉打开并且视图控制器(zbar 扫描仪)出现,zbar 扫描仪就会挂起。

我调用 zbar 扫描仪视图控制器 self.presentViewController(self.ZBarReader!,动画:真,完成: 无)

我试图在展示 zbar 视图控制器之前关闭导航抽屉视图 让 rvc = self.revealViewController() rvc.dismissViewControllerAnimated(true, completion:nil)

但我收到消息:“警告尝试在演示或关闭过程中从视图控制器关闭”

【问题讨论】:

【参考方案1】:

通过在导航抽屉被关闭和扫描仪视图控制器被调用之间添加延迟来解决这个问题

let seconds = 2.0
let delay = seconds * Double(NSEC_PER_SEC)  // nanoseconds per seconds
let dispatchTime = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))

dispatch_after(dis`enter code here`patchTime, dispatch_get_main_queue(), 

            let rvc = self.revealViewController()
            rvc.dismissViewControllerAnimated(false, completion: nil)                

        )
scanWaitingFunction()

【讨论】:

以上是关于从打开的导航抽屉呈现视图控制器时挂起的主要内容,如果未能解决你的问题,请参考以下文章

从视图控制器呈现导航视图 - IOS 7

从UITabBarController内部呈现UINavigationController

如何从 appdelegate 呈现和关闭模态视图?

使用标签栏控制器 -> 导航控制器 -> 视图层次结构 - iOS Swift 从应用程序委托呈现视图

Branch.io 呈现导航控制器

以模态方式呈现视图控制器时,导航栏与黑色而不是白色混合