在 iOS 项目中,我有一个主 ViewController 和第二个 ViewController,第二个 ViewController 显示为 Popover,带有来自导航栏中按钮的 segue。在那个弹出窗口中有一个带有此代码的按钮:
class Pop: UIViewController {
@IBAction func colorOnePressed(_ sender: Any) {
let vc = ViewController()
vc. zoomIn()
}
}
这是第一个 View Controller 的方法:
class ViewController: UIViewController {
@IBOutlet weak var mainTextField: UITextView!
...
func zoomIn() {
mainTextField.font = UIFont(name: "Helvetica Neue", size: CGFloat(18.00))
}
}
不幸的是(显然对你们中的许多人来说)我得到了一个 fatal error :“在展开可选值时意外发现 nil”。
最佳答案
您正在尝试从 ViewController 的新实例调用该方法。相反,您需要声明一个 delegate Popover VC 中的属性并在 prepareForSegue:sender:
内传递原始父 VC方法作为 Popover VC 的委托(delegate)。
关于ios - 如何从 Popover 调用主视图 Controller 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43596399/