[英]Why am I getting the error: fatal error: unexpectedly found nil while unwrapping an Optional value?
[英]Why am I getting the error “fatal error: found nil while unwrapping optional value”?
目前,我有4個小imageViews,它們顯示從相機拍攝的圖像。 當我單擊這些圖像之一時,我希望它帶我到一個單獨的模式視圖控制器,其中屏幕充滿整個VC。 下面的代碼顯示我在較小的imageViews上附加了4個無文本按鈕,單擊這些按鈕希望將我帶到已設置的單獨的模式視圖控制器。
imageView5是我在模態VC上設置的imageView,“ bigImager”是segue標識符。
讓我知道你有什么想法嗎?
@IBAction func bigImage1(sender: AnyObject) {
if imageView1.image != nil {
print(sender.tag)
}
}
@IBAction func bigImage2(sender: AnyObject) {
if imageView2.image != nil {
self.performSegueWithIdentifier("bigImager", sender: self)
}
}
@IBAction func bigImage3(sender: AnyObject) {
if imageView3.image != nil {
self.performSegueWithIdentifier("bigImager", sender: self)
}
}
@IBAction func bigImage4(sender: AnyObject) {
if imageView4.image != nil {
self.performSegueWithIdentifier("bigImager", sender: self)
}
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "bigImager" {
let dvc: ImageViewController = segue.destinationViewController as! ImageViewController
dvc.imageView5.image = imageViewArray[sender!.tag].image
}
}
檢查prepareForSegue的發送者是否為nil
imageView5
是隱式展開的可選內容嗎? 如果是這樣,則可能尚未創建。
我建議添加一個var image: UIImage?
屬性為ImageViewController
。 然后可以像這樣設置它:
if let dvc = segue.destinationViewController as? ImageViewController {
dvc.image = imageViewArray[sender!.tag].image
}
在ImageViewController
內部,您可以在適當的時間設置圖像。 一種方法是使用didSet
:
class ImageViewController: UIViewController {
var image: UIImage? {
didSet {
updateViews()
}
}
var imageView5: UIImageView! {
didSet {
updateViews()
}
}
func updateViews() {
if imageView5 != nil {
imageView5.image = image
}
}
}
顯然我看不到您為imageViewArray設置值的任何地方,請確保正確設置此數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.