我有2个观点。 第一种视图是“ISBN”条形码, 但是通过相机自动填充ISBN, 我添加按钮。 因此,当用户触摸按钮时,第二个视图以模态显示 当检测到“ISBN”时 第二种观点被驳回了 在第一个视图中, 在第二个视图中,文本字段填充了检测到的“ISBN”。
我通常使用UILabel
传递数据并显示结果。
但现在我得到如下错误。
fatal error: unexpectedly found nil while unwrapping an Optional value
第一个视图的类是UploadMain;
import UIKit
class UploadMain: UIViewController {
var ISBNstring: String = ""
@IBOutlet weak var ISBN: UITextField!
override func viewDidLoad() {
}
@IBAction func scanBarcode(sender: AnyObject) {
performSegueWithIdentifier("scanModal", sender: self)
}
}
第二个是ScanView;
class ScanView : UIViewController, AVCaptureMetadataOutputObjectsDelegate {
let session : AVCaptureSession = AVCaptureSession()
var previewLayer : AVCaptureVideoPreviewLayer!
var detectionString : String!
*****
if let UploadVC = self.storyboard?.instantiateViewControllerWithIdentifier("UploadMain") as? UploadMain {
UploadVC.ISBNstring = self.detectionString!
UploadVC.ISBN.text! = UploadVC.ISBNstring // maybe error here
}
答案 0 :(得分:0)
if let UploadVC = self.storyboard?.instantiateViewControllerWithIdentifier("UploadMain") as? UploadMain {
UploadVC.ISBNstring = self.detectionString!
UploadVC.ISBN.text! = UploadVC.ISBNstring
这不是正确的方法。 您应该使用代理来传播更改。使用NSUserDefault在这里不是正确的,尽管它很容易解决。
答案 1 :(得分:0)
第二个是ScanView添加这个被解雇的视图
NSUserDefaults.standardUserDefaults().setObject( self.detectionString!, forKey: "ISBNtxt")
第一个视图的类是UploadMain
override func viewDidAppear(animated: Bool)
{
if (NSUserDefaults.standardUserDefaults().objectForKey("ISBNtxt")) != nil
{
ISBN.text! = NSUserDefaults.standardUserDefaults().objectForKey("ISBNtxt") as! String
}
}