gpt4 book ai didi

ios - 在另一个 ViewController 中从 'UIImagePickerController' 更改 UIImageView 图像会因 'fatal error: unexpectedly found nil' 而崩溃

转载 作者:行者123 更新时间:2023-11-28 12:43:23 24 4
gpt4 key购买 nike

我有 2 个 UIViewController:

ViewController“A”名为“RERUN_SETUP”,带有 UIImageView,ViewController“B”名为“SelectPhotos”,带有 imagePickerController

ViewController 'A' 中的 UIImageView 上方有一个空的透明 UIButton,它会弹出 ViewController 'B' 并允许用户选择从 Camera 添加图片或来自照片。 ViewController“A”在 ViewController“B”中声明,但是当我尝试从 ViewController“B”更改 ViewController“A”上的 UIImageView 时,应用程序崩溃并出现错误

fatal error: unexpectedly found nil while unwrapping an Optional value.

下面是我的代码,任何帮助将不胜感激:)

View Controller “A”

class RERUN_SETUP: UITableViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIPopoverPresentationControllerDelegate  {
//USER PICTURE
@IBOutlet weak var RERUNpictureIn: UIImageView?

//TRANSPARENT BUTTON OVER THE IMAGE VIEW
@IBAction func imageButton(sender: AnyObject) {

let popoverContent = self.storyboard?.instantiateViewControllerWithIdentifier("SelectPhotos")


popoverContent!.modalPresentationStyle = .Popover
popoverContent?.modalTransitionStyle = UIModalTransitionStyle.FlipHorizontal
var popover = popoverContent!.popoverPresentationController

if let popover = popoverContent!.popoverPresentationController {

let viewForSource = sender
popover.sourceView = self.view
popoverContent!.preferredContentSize = CGSizeMake(100,80)
popover.delegate = self
popover.permittedArrowDirections = .Any


}

self.presentViewController(popoverContent!, animated: true, completion: nil)





}
func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {


return UIModalPresentationStyle.None


}

View Controller “B”

import UIKit

class SelectPhotos: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
var savedImage = NSUserDefaults.standardUserDefaults().objectForKey("image")
var imageToSave = UIImage()
var otherController:RERUN_SETUP = RERUN_SETUP()

@IBAction func camera(sender: UIButton) {

let pickerController = UIImagePickerController()
pickerController.delegate = self
pickerController.sourceType = UIImagePickerControllerSourceType.Camera
pickerController.allowsEditing = true

self.presentViewController(pickerController, animated: true, completion: nil)

}


@IBAction func photos(sender: AnyObject) {
let pickerController = UIImagePickerController()
pickerController.delegate = self
pickerController.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
pickerController.allowsEditing = true

self.presentViewController(pickerController, animated: true, completion: nil)


}

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {

self.dismissViewControllerAnimated(true, completion: nil)

self.imageToSave = image

otherController.RERUNpictureIn!.image = image
}

override func viewDidLoad() {
super.viewDidLoad()


}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()

}

}

最佳答案

在 View Controller B 中,在图像选择器委托(delegate)方法中将图像保存到 nsuserdefault,然后在 View Controller A 中从 nsuserdefault 获取该图像。并设置图像。

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {
let imageData = UIImagePNGRepresentation(image)
NSUserDefaults.standardUserDefaults().setObject(imageData!, forKey: "image")
NSUserDefaults.standardUserDefaults().synchronize()
}

并在您要设置图像的 View Controller 中

let imageData = NSUserDefaults.standardUserDefaults().objectForKey("image") as! NSData
imgView.image = UIImage(data: imageData)

关于ios - 在另一个 ViewController 中从 'UIImagePickerController' 更改 UIImageView 图像会因 'fatal error: unexpectedly found nil' 而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38801086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com