【发布时间】:2016-04-18 20:30:36
【问题描述】:
我有一个带有导航抽屉的应用程序。导航抽屉有一个包含许多单元格的表格。当用户按下表格单元格时,值将存储在单例中,抽屉关闭并出现主屏幕。
当主屏幕加载时,在 viewDidLoad 函数中,代码检查存储在单例中的值,如果有某个值,它会调用 zbar 扫描仪。 但抽屉永远不会关闭它只是挂起。从调试中可以看出,该值已传递给单例,并在 viewDidload 函数中正确访问。
//这是viewDidLoad中的代码。 shareData 是单例,varView 存储在 Navigation 抽屉中选择的表的值。 “零被打印到调试控制台,但随后出现挂起 如果(self.shareData.varView == 0) { 打印(“零”)
scanWaitingFunction()
}
此外,当通过主屏幕中的按钮调用 zbar 扫描仪时,它也可以正常工作。我试图从 viewDidLoad 函数中以编程方式调用按钮,但抽屉永远不会关闭并且应用程序会冻结。 @IBAction 函数扫描(发件人:AnyObject) { 扫描等待函数() }
还有 函数 scanWaitingFunction() {
locked = true
scanner() //wait for the async method, the zbar scanner to complete before advancing
while(locked){wait()}
}
func wait()
{
NSRunLoop.currentRunLoop().runMode(NSDefaultRunLoopMode, beforeDate: NSDate(timeIntervalSinceNow: 1))
}
【问题讨论】:
-
我忘了说我正在使用 SWRevealViewController 库
标签: navigation freeze drawer zbar