【问题标题】:Why is prepare for segue not sending image swift?为什么准备 segue 不快速发送图像?
【发布时间】:2017-03-13 13:18:57
【问题描述】:

我正在尝试将图像发送到另一个视图控制器。

override func prepare(for segue: UIStoryboardSegue, sender: Any!) {

    if (segue.identifier == "cropSegue") {

        let crop : CropViewController =  segue.destination as! CropViewController
        crop.cropImage = image
        print("prepared")
    }
}

在接收端

class CropViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
var cropImage : UIImage!

override func viewDidLoad() {
    super.viewDidLoad()
    self.imageView.image = cropImage
    // Do any additional setup after loading the view.
}

我不确定出了什么问题,但图像没有显示,即使正在调用准备 segue。关于为什么的任何想法?

【问题讨论】:

  • 将您的 CropViewController 代码移动到 viewWillAppear()。我敢打赌它会奏效。此外,您可以设置断点以查看发生了什么。
  • 您确定此时crop.cropImage = image 您的image 不为零吗?
  • 我的猜测是你的segue标识符不是“cropSegue”,而是设置一个断点并找出来。 prepareForSegue 发生了什么
  • 您的代码应该可以完美运行。请交叉检查 segue name,确保 segue 期间 image 不是 nil,并检查所有 outlets 是否连接正确

标签: ios swift swift3


【解决方案1】:

试试这个

class CropViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
var cropImage : UIImage?

override func viewDidLoad() {
    super.viewDidLoad()
    if let image = cropImage {
         self.imageView.image = image
    }        
}

【讨论】:

    猜你喜欢
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多