所以我有这样的设置:
我有一个自定义代码阅读器视图控制器,一旦检测到条形码,我希望它能够转换到带有标签和UIWebView的另一个视图控制器。到目前为止,它只与显示的标签完美配合。出于某种原因,我所做的只是添加UIWebView
并在我的第二视图控制器自定义类中添加了IBOutlet
,并且由于exc_bad_access
错误,segue无法正常工作。该错误突出显示了我的代码阅读器视图控制器中的以下行:
self.performSegueWithIdentifier("push", sender: self) //my segue is named push
这是我的第二个视图控制器代码:
import UIKit
public class SecondViewController: UIViewController {
var setText:String!
@IBOutlet weak var WebV: UIWebView!
@IBOutlet var label: UILabel!
override public func viewDidLoad() {
label.text = setText
}
}
解决方案:所以我刚才意识到,由于某种原因,我的segue正在逃离主线程。这是否发生在闭包中?并且,这是否意味着您无法在闭包/阻止中执行segue?
非常感谢任何帮助。非常感谢你。
答案 0 :(得分:1)
假设您的代码
你没有代码将String从CodeReaderViewController传递给SecondViewController。
这就是我所做的(实际上对于我所做的条形码阅读器):
class CodeReaderViewController : UIViewController {
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "push" {
let subVC: SecondViewController = segue.destinationViewController as SecondViewController
subVC.setText = <ANY TEXT WHICH YOU'D LIKE TO PASS TO SECONDVIEWCONTROLLER>
}
}
}
如果它不起作用,请告诉我,因为这是在Swift出来后写的。
答案 1 :(得分:1)
所以我意识到,由于某种原因,我的segue没有在主线程上运行。调度到主队列修复了问题。
答案 2 :(得分:0)
如果您已经在主线程中调用prepareForSegue但仍然访问不良,请仔细检查您是否在故事板中使用了正确的视图控制器类。