ios - ViewController 的导出 View 首先非零,然后从包加载时为零

标签 ios uiviewcontroller bundle iboutlet

我正在从带有 initWithNibName:bundle: 的包中加载一个 UIViewController。如果我在它的 viewDidLoad 中设置断点,我可以看到它的 view 已设置。在 Interface Builder 中查看 About.xib 时,我也可以看到这一点。

然而,一旦第一次实际使用该 View (根据我的应用程序的逻辑,在调用 [self.navigationController pushViewController:viewController animated:YES] 时)我收到此错误:

* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "About" nib but the view outlet was not set.'

这是同时触发 viewDidLoad 的调用。所以显然在调用过程中,view 首先是非 nil(它应该是),然后显然再次变为 nil。

如果我在调用之前立即在调试器中输入 po [viewController view],我会收到此错误(这可能只是同一症状的另一种表现形式):

error: Execution was interrupted, reason: internal ObjC exception breakpoint(-3).. The process has been returned to the state before expression evaluation.

如何在不遇到这些错误的情况下加载 View Controller 并将其与现有导航栏结合使用?

更新 如果我从我的 Storyboard(不一定是我的主 Storyboard)而不是从 XIB 文件加载 View Controller ,问题显然就消失了。

最佳答案

在 Xcode 中查看 xib 文件时,在身份检查器中,自定义子类是否设置为您查看 Controller 的类?如果你设置了它,然后转到连接检查器,你会看到一个名为“view”的属性,只需将它拖到 Interface builder 中的 View 中,它应该可以工作

关于ios - ViewController 的导出 View 首先非零,然后从包加载时为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23917607/

相关文章:

ios - 在 ios swift 中延迟在 tableView 上显示数据

ios - 在 ARC iOS App 中完全卸载 UIViewController

cocoa-touch - 横向显示 MFMailComposeViewController

ios - Open CV - iOS PNG Overlaying images with transparent background 显示白色背景

ios - 找不到签名证书 "iOS Distribution"

ios - UIView.animateWithDuration 的交互式过渡完成 block 从未在 animateTransition 内部调用

ios - UIImageView 以编程方式设置图像错误

ruby-on-rails - 在 Windows 上通过代理安装 rails bundle

java - onSaveInstanceState 给我 parcelable 错误...有时

lisp - TextMate 有 "elisp bundle"这样的东西吗?