首页 > 解决方案 > 通过代码以模态方式实例化 viewcontrolelr 时出错

问题描述

为什么使用此代码,第二个视图控制器中的插座被打开,因为 nil 使应用程序崩溃?他们甚至没有出现。如果我尝试访问网点会出现问题,但如果我更改视图的背景则不会。

在视图控制器 1 按钮中:

let vc = SecondViewController.self.createAcertainCustomAppearenceOfVC()
        vc.modalPresentationStyle = .overCurrentContext
        vc.modalTransitionStyle = .crossDissolve
        present(vc, animated: true, completion: nil)

在第二个视图控制器中

final class func createAcertainCustomAppearenceOfVC() -> SecondViewController {
        let VC = SecondViewController()
        VC.view.backgroundColor = .systemRed
//        VC.tappedSecondOut.setTitle("push", for: .normal)
        VC.tappedSecondOut.backgroundColor = .black
        return VC
    }

标签: swiftinstancemodalviewcontroller

解决方案


您正在尝试实例化在情节提要中有插座的视图控制器,您需要从情节提要名称和在界面生成器中设置的视图控制器的标识符来实例化控制器。

final class func createAcertainCustomAppearenceOfVC() -> SecondViewController? {
    let storyboard = UIStoryboard.init(name: "Main", bundle: nil)
    return storyboard.instantiateViewController(withIdentifier: "secondViewControllerIdentifier") as? SecondViewController
}

界面生成器


推荐阅读