我收到错误:
主题1:EXC_BAD_INSTRUCTION(代码= EXC_1386_INVOP,子代码= 0x0)
尝试将从Photo库中选择的图像传递给另一个视图控制器时。
源ViewController -
@IBAction func myButtonTapped(_ sender: UIButton)
{
let secondVC = storyboard?.instantiateViewController(withIdentifier: "secondVC") as! secondVC
secondVC.passedVName = VNameTextField.text!
secondVC.passedCcName = DropTextBox.text!
secondVC.passedVImage = VImageView.image!
navigationController?.pushViewController(secondVC, animated: true)
}
目的地ViewController -
class secondVC: UIViewController
{
@IBOutlet weak var DisplayPassedImage: UIImageView!
@IBOutlet weak var ccNameDisplayLabel: UILabel!
@IBOutlet weak var VNameDisplayLabel: UILabel!
var passedVName = ""
var passedCcName = ""
var passedVImage = UIImage()
override func viewDidLoad()
{
super.viewDidLoad()
VNameDisplayLabel.text = passedVName
ccNameDisplayLabel.text = passedCcName
DisplayPassedImage.image = passedVImage // Error- Thread 1:EXC_BAD_INSTRUCTION(code=EXC_1386_INVOP,subcode=0x0)
}
}
注意:' PassedVName'并且'传递了CcName'数据已成功传递到目标ViewController。如果我试图通过传递的VImage',我会收到错误。
答案 0 :(得分:1)
您可以使用NotificationCenter
将操作/消息传递给任何viewController。在这里,你需要在UIImage
中取AppDelegate
个对象(全局意味着),这样你就可以在任何地方传递它。
实施例
1)你是第一个VC
2)在firstVC中选择图像并将此图像添加到您在AppDelegate
中拍摄的图像对象中
3)在firstVC中发布您希望通过行动的通知
4)在SecondVC上添加观察
5)您可以从AppDelegate
对象(全局对象)获取图像。
否则您可以使用协议。
答案 1 :(得分:0)
根据我对您的有限经验,应将.jpg
更改为.png
图片