ios - 如何从 Popover 调用主视图 Controller 的方法?

标签 ios swift uiviewcontroller popover

在 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/

相关文章:

ios - 如何在 iOS 8/Swift 中处理带有屏幕尺寸/方向变化的 NSLayoutConstraints?

ios - UITabBarController.selectedIndex 返回错误值

ios - 根据 textView 调整单元格大小不起作用?

ios - 当 App 进入后台时暂停音频

ios - 从 WatchExtension 在日历中添加事件

swift - SwiftUI 中的动态 NavigationLink 目的地?

ios - 如何在 iOS Swift 3 中设置 EVURLCache

ios - 调用另一个 View Controller 的 func 来控制 alpha 返回 nil 错误

iphone - iOS:如何识别我们从父 UIViewController 中的子 UIViewController 返回?

ios - 日期选择器 - 显示两个日期之间的时间 (UIDatePickerModeDateAndTime)