呈现其视图控制器时笔尖加载失败
Posted
技术标签:
【中文标题】呈现其视图控制器时笔尖加载失败【英文标题】:Nib load failure when presenting its view controller 【发布时间】:2016-10-22 15:40:10 【问题描述】:我在一个继承自NSObject
的类中有这个函数:
open func showCustomDialogInView(vc: UIViewController)
let bundle = Bundle(for: CustomDialogViewController.self)
let customDialog = CustomDialogViewController(nibName: "CustomDialogViewController", bundle: bundle)
customDialog.delegate = vc
customDialog.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext
vc.present(customDialog, animated: true, completion: nil)
在更新到Xcode 8
和Swift 3
语言之前,我在我的一个ios 项目中进行了这项工作,但是现在当我运行该应用程序时,当到达vc.present(customDialog, animated: true, completion: nil)
行时会崩溃。我在日志控制台中收到此消息:
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法在包中加载 NIB:“NSBundle /MyApp.app>(已加载)”,名称为“CustomDialogViewController””
我不明白发生了什么,因为let customDialog = CustomDialogViewController(nibName: "CustomDialogViewController", bundle: bundle)
行没有崩溃,而且似乎我得到了一个CustomDialogViewController
对象。
有人可以帮我解决这个问题吗?谢谢
【问题讨论】:
你确定 customDialog 被实例化了吗? 你已经在标签中注明了“Xcode 8 & swift 3”,标题中也不需要了。 【参考方案1】:当您在 XCode 之外重命名文件时,可能会发生此错误。要解决它,您只需从项目中删除文件(右键单击 - 删除和“删除引用”)。
然后你可以重新导入项目中的文件,一切都会好起来的。
【讨论】:
【参考方案2】:在这种情况下,此错误似乎是因为 xib
文件由于某种原因缺少适当的目标成员资格。
感谢您的回答
【讨论】:
以上是关于呈现其视图控制器时笔尖加载失败的主要内容,如果未能解决你的问题,请参考以下文章