Ios 将imageView传递到下一个活动时,是否需要出口
我有一个小问题,每当我删除下图所示的插座(ImageSelected)(带有黄色警告)时,应用程序就会在应该传递图像时崩溃 这里是我如何定义它的Ios 将imageView传递到下一个活动时,是否需要出口,ios,swift,cocoa-touch,Ios,Swift,Cocoa Touch,我有一个小问题,每当我删除下图所示的插座(ImageSelected)(带有黄色警告)时,应用程序就会在应该传递图像时崩溃 这里是我如何定义它的 var imageChosen: UIImageView! 这就是我如何将从库中选择的图像保存到所选图像的方式 func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]
var imageChosen: UIImageView!
这就是我如何将从库中选择的图像保存到所选图像的方式
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
var chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage
imageChosen.contentMode = .ScaleAspectFit
imageChosen.image = chosenImage
dismissViewControllerAnimated(true, completion: nil)
self.performSegueWithIdentifier("next", sender: self)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
if let image = info[UIImagePickerControllerOriginalImage] as UIImage{
imageChosen.contentMode = .ScaleAspectFit
imageChosen.image = image
}
else
{
//something went wrong
}
dismissViewControllerAnimated(true, completion: nil)
self.performSegueWithIdentifier("next", sender: self)
}
这是我将图像传递到下一个活动的位置
override func prepareForSegue(segue: (UIStoryboardSegue!), sender: AnyObject!) {
if segue.identifier == "next" {
var pass:postView = segue.destinationViewController as! postView
pass.currentImage = imageChosen.image
}
}
override func prepareForSegue(segue: (UIStoryboardSegue!), sender: AnyObject!) {
if segue.identifier == "next" {
if let pass = segue.destinationViewController as postView
{
if let image = imageChosen.image{
pass.currentImage = imageChosen.image
}
}
}
}
当我删除图片中的插座时,应用程序崩溃,因为图像为零,尽管代码似乎没有问题,
有人能帮我吗?你也需要从
视图控制器
(swift文件)中删除插座,在这里你可以看到图片中的插座,你可以在(x)中点击从图像中删除插座,因为它不再存在(你可以看到黄色三角形形式的代码警告)
您还应将代码更改为:
var imageChosen: UIImageView?
这就是我如何将从库中选择的图像保存到所选图像的方式
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
var chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage
imageChosen.contentMode = .ScaleAspectFit
imageChosen.image = chosenImage
dismissViewControllerAnimated(true, completion: nil)
self.performSegueWithIdentifier("next", sender: self)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
if let image = info[UIImagePickerControllerOriginalImage] as UIImage{
imageChosen.contentMode = .ScaleAspectFit
imageChosen.image = image
}
else
{
//something went wrong
}
dismissViewControllerAnimated(true, completion: nil)
self.performSegueWithIdentifier("next", sender: self)
}
这是我将图像传递到下一个活动的位置
override func prepareForSegue(segue: (UIStoryboardSegue!), sender: AnyObject!) {
if segue.identifier == "next" {
var pass:postView = segue.destinationViewController as! postView
pass.currentImage = imageChosen.image
}
}
override func prepareForSegue(segue: (UIStoryboardSegue!), sender: AnyObject!) {
if segue.identifier == "next" {
if let pass = segue.destinationViewController as postView
{
if let image = imageChosen.image{
pass.currentImage = imageChosen.image
}
}
}
}
我做得非常详细,以便更容易理解之所以不断出现错误,是因为您在分配图像时没有分配所选图像 解决方案
override func viewDidLoad() {
super.viewDidLoad()
picker.delegate = self
// Add this line
imageChosen = UIImageView()
}
声明ImageSelected=UIImageView()后,它将解决您的问题
希望有帮助 将其作为正常属性。删除插座。@AryamSaleh您需要删除图像视图的连接。然后试着告诉我它是否工作。@Amit89当我删除它时crashes@AshokLondhe我试图从故事板中删除连接,应用程序崩溃,原因是图像变了nil@AryamSaleh您没有将正确的图像设置为imageView。请正确设置图像。当我从情节提要中删除图像时,应用程序崩溃。你能复制并通过xcode显示的错误消息吗?致命错误:在展开可选值时意外发现零图片中的黄色三角形在我实施解决方案后仍然存在删除情节提要上的黄色三角形