我尝试将图片传递到目标imageView
的另一个UIView
,目标UIView
通过现有的Modally segue连接到源 //Code of destination UIView
import UIKit
import CoreData
class ReviewViewController: UIViewController {
@IBOutlet var backgroundImageView:UIImageView!
var subject:Semester!
override func viewDidLoad() {
super.viewDidLoad()
backgroundImageView?.image = UIImage(data: subject.image!)
let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Dark)
let blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.frame = view.bounds
backgroundImageView.addSubview(blurEffectView)
// Code of Source UIView
import UIKit
import CoreData
class SubjectDetailViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var facultyImageView:UIImageView!
var subject:Semester!
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "destinationidentifier"
{
let destinationController = segue.destinationViewController as! ReviewViewController
destinationController.backgroundImageView?.image = self.facultyImageView.image
}
}
。
我试图通过segue传递数据,并通过Outlet在源UIView中设置图像(即NSData - Core Data),但我在控制台中收到错误image description -
“致命错误:在打开Optional时意外发现nil 值“
{{1}}
答案 0 :(得分:0)
你做错了,因为你直接在插座内设置图像而没有使用var或property传递值。
1)首先声明变量
var backgroundImage : UIImage!
2)按下
时设置该变量内的值destinationController.backgroundImage = self.facultyImageView.image
答案 1 :(得分:0)
您的问题是backgroundImageView
对象为零,因为destinationController
当前不在window
层次结构中。
所以改变你的prepareForSegue
就像这样
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "destinationidentifier"
{
let destinationController = segue.destinationViewController as! ReviewViewController
destinationController.image = self.facultyImageView.image
}
}
现在在ReviewViewController
中创建一个图像对象,如下所示,并在viewDidLoad
中添加一行
var image: UIImage!
override func viewDidLoad() {
super.viewDidLoad()
self.backgroundImageView?.image = self.image
}
希望这会对你有所帮助
答案 2 :(得分:0)
像这样修改你的代码,尝试使用UIImage发送图像,而不是ImageView,
$rows["maxUserID"]
希望这会对你有所帮助。