尽管没有错误或没有崩溃或冻结,但仍未加载

时间:2015-12-04 04:40:19

标签: ios iphone swift uiviewcontroller

我带着一个非常奇怪的错误来到这里。

我的故事板中有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")
    }

}

2 个答案:

答案 0 :(得分:1)

你可以在这个SO Answer

中引用一些答案

基本上在执行展开segue之前制作BOOL并在ViewDidAppear进行检查,如果其设置然后从那里执行segue并将BOOL转为false

答案 1 :(得分:0)

我发现了问题。 在其他项目中它正在工作,因为我正在显示segue Modally 在这里,我错误的只是展示它。

现在我已将其更改为显示为Modal 它工作正常。