我正在尝试将此UI视图视图从一个视图控制器传递到同一故事板上的另一个视图控制器。我已经将UI TextField传递给UI Label和UI Button。现在我需要使用UI图像视图。
这是我的两个视图控制器。
import UIKit
class PhotoShareViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var contentTextView: UITextView!
@IBOutlet weak var thatTextField: UITextField!
@IBOutlet weak var thisTextField: UITextField!
var presenter: PhotoShareModuleInterface!
var image: UIImage!
@IBAction func thisUploadPhoto(_ sender: Any) {
if thisTextField.text != "" && thatTextField.text != ""
{
performSegue(withIdentifier: "segue", sender: nil)
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
var photoShareLabelViewController = segue.destination as! PhotoShareLabelViewController
photoShareLabelViewController.thisString = thisTextField.text!
photoShareLabelViewController.thatString = thatTextField.text!
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
imageView.image = image
}
override var prefersStatusBarHidden: Bool {
return true
}
@IBAction func didTapCancel(_ sender: AnyObject) {
presenter.cancel()
presenter.pop()
}
/* @IBAction func didTapDone(_ sender: AnyObject) {
guard let message = thatTextField.text, !message.isEmpty else {
return
}
guard let messageOne = thisTextField.text, !messageOne.isEmpty else {
return
}
presenter.finish(with: image, content:message)
presenter.dismiss()
}
}
*/
}
extension PhotoShareViewController: PhotoShareViewInterface {
var controller: UIViewController? {
return self
}
}
如果有人能告诉我如何将图像从一个视图控制器发送到另一个视频控制器,那将是非常棒的!
答案 0 :(得分:5)
你没有展示PhotoShareLabelViewController
,但可能是它有:
var thisString: String?
添加
var thisImage: UIImage?
然后以与thisString
photoShareLabelViewController.thisImage = imageView.image
然后在viewDidLoad
的{{1}}(这可能是你选择PhotoShareLabelViewController
的地方)中提取。类似的东西:
thisString
但是,使用您正在使用的任何变量名称。
简而言之,只需复制您为self.imageView.image = self.thisImage
所做的工作,但使用thisString
作为类型,而不是UIImage
。
注意:您没有将UIImageView从一个VC传递到另一个VC(这是不可能的)。您正在将图像从imageview传递到另一个VC。