swift - 通过代码以模态方式实例化 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
}
解决方案
您正在尝试实例化在情节提要中有插座的视图控制器,您需要从情节提要名称和在界面生成器中设置的视图控制器的标识符来实例化控制器。
final class func createAcertainCustomAppearenceOfVC() -> SecondViewController? {
let storyboard = UIStoryboard.init(name: "Main", bundle: nil)
return storyboard.instantiateViewController(withIdentifier: "secondViewControllerIdentifier") as? SecondViewController
}
推荐阅读
- c++ - 为什么这个 constexpr 函数会给我错误?
- scrapy - Scrapy根据字段将文件上传到S3中动态创建的目录
- flutter - LateInitializationError: 字段 'roast' 尚未初始化
- javascript - 使用 javascript 执行程序或 selenium 滚动弹出窗口?
- javascript - 使用 angular-highchart 的堆积条形图
- r - 如何使用 R 中的 cut 函数绘制绘图?
- azure-log-analytics - 将日志发送到多个 Azure Log 分析工作区
- javascript - 从第二个正则表达式组中删除任何特殊字符
- css - 使用 Tailwindcss 构建 CSS 不起作用
- javascript - 谷歌图表未显示在任何移动浏览器上(但在桌面上工作正常)