【发布时间】:2017-05-18 02:51:27
【问题描述】:
我有一个使用来自 GitHub 的 presentr 制作的警报视图。我使用了一个简单的view controller,它将覆盖在当前视图控制器上。现在我有来自first view controller 的UIImage 和UIlabel 等元素需要alert view controller 访问。但是当我单击alert view controller 中的取消按钮以从firstviewcontroller 的uilabel 访问uiimage 和text 时。这是代码。你能告诉我如何解决这个问题。我无法对数据进行 segue,因为我正在呈现视图控制器,而我试图访问的数据无论如何都过于 segue。我不断收到此错误“致命错误:在展开可选值时意外发现 nil”超时我单击alertviewcontroller 中的保存按钮。
class firstviewcontroller: UIViewController{
var photos2: [ImageSource]?
@IBOutlet weak var Label: UIlabel!
@IBOutlet weak var Image: UIImage!
}
class alertviewcontroller: UIViewController{
@IBAction func Save(_ sender: Any) {
dismiss(animated: true, completion: nil)
let storyboard: UIStoryboard = UIStoryboard.init(name: "Main", bundle: nil)
let firstViewController: firstviewcontroller = storyboard.instantiateViewController(withIdentifier: "firstviewcontroller") as! firstviewcontroller
if let image = firstViewController.Image {
imageview.image = image
}
if let label = firstViewController.Label {
label.text = Label.text
}
}
}
【问题讨论】:
-
你是如何实例化 alertViewController 的?如果您使用情节提要执行此操作,则将数据传递给子 VC 的标准方法是通过 segue。
-
顺便说一句,按照惯例,所有类都以大写字母开头,所有实例都以小写字母开头。您的代码非常混乱,因为类和实例都是
firstviewcontroller。该类应称为Firstviewcontroller以避免这种混淆。
标签: ios iphone swift xcode swift3