这是我的问题:
我在课堂上有一个功能。该课程有一个名为embeddedView
的出口。在类中调用函数时,它可以访问该插座,但在其他地方调用时,它会失败。
func embedView(_ newView: UIViewController){
self.navigationItem.title = selectedView
self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: Style.sectionHeaderTitleColor]
newView.view.frame = self.embeddedView.bounds
self.embeddedView.addSubview((newView.view)!) //This is the line that fails from AppDelegate
addChildViewController(newView)
newView.didMove(toParentViewController: self)
}
从类中调用时,该函数没有问题,但是当从AppDelegate调用时,它失败,错误为fatal error: unexpectedly found nil while unwrapping an Optional value
,因为embeddedView被声明为!
非常感谢任何帮助!
答案 0 :(得分:0)
您是否对self.embeddedView
中的变量AppDelegate
有强大的参考。通常,AppDelegate
类中没有可用的UIView,因为它与任何UIView都没有关联。 AppDelegate
是初始化所有其他UIView的起点。出现此错误的原因是您的视图self.embeddedView
实际上nil
位于AppDelegate
,但是当您在UIViewController
类中使用相同内容时,您可以使用该对象并且它可以正常工作。