我带着一个非常奇怪的错误来到这里。
我的故事板中有3个View控制器。
1)包含产品列表ViewController
2)单品详细信息ProductViewController
3)条形码扫描器BarcodeViewController
在MAIN和PRODUCT DETAIL ViewController
中,我有一个按钮说"扫描条形码"在顶部。
我首先编码了" Scan Barcode
"的按钮。在ViewController
中,将其转换为BarcodeViewController
。它运作得很好。
对于ProductViewController
中的同一个扫描按钮,我的编码方式不同。
我按下按钮退出。这样ViewController
再次加载,加载后我就会以编程方式加载条形码扫描器。
它不起作用。
没有错误,没有崩溃,没有。 甚至准备segue函数被称为。它到处都是正确的块。
只是BarcodeViewController
不显示。
ViewController中的代码
@IBAction func returned (segue: UIStoryboardSegue) {
NSLog("Returned Segue \(segue.identifier)")
if ( segue.identifier == "unwindToMainViewViaBarcode" )
{
dispatch_async(dispatch_get_main_queue(), {
self.performSegueWithIdentifier(self.segueIdentifierForBarcode, sender: nil)
});
}
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
NSLog("PrepareForSegue \(segue.identifier)")
if ( segue.identifier == segueIdentifierForBarcode )
{
// Reset barcode String
barcodeString = ""
// get reference for ViewController and set as a var
let destination = segue.destinationViewController as! BarcodeViewController
destination.mainView = self;
print("open barcode called")
}
}
答案 0 :(得分:1)
你可以在这个SO Answer
中引用一些答案基本上在执行展开segue之前制作BOOL
并在ViewDidAppear
进行检查,如果其设置然后从那里执行segue并将BOOL
转为false
答案 1 :(得分:0)
我发现了问题。 在其他项目中它正在工作,因为我正在显示segue Modally 在这里,我错误的只是展示它。
现在我已将其更改为显示为Modal 它工作正常。