【问题标题】:Using XCode storyboard to instantiate view controller that uses XIB for its design使用 XCode 故事板实例化使用 XIB 进行设计的视图控制器
【发布时间】:2012-02-27 16:02:55
【问题描述】:

我有一个之前创建的 UIViewController 子类,它的控件布局在 XIB 文件中。

我现在想在情节提要中使用这个视图控制器,但似乎虽然我可以在情节提要中指示视图控制器的类名,但我不能告诉它加载 XIB。

我宁愿不要将 XIB 中的所有内容都移到情节提要中,而是将其保存在单独的 XIB 中。

如何在情节提要中获取此 UIViewController 以加载我的 XIB?

【问题讨论】:

    标签: xcode storyboard xib nib


    【解决方案1】:
    1. 删除情节提要中视图控制器包含的视图。

    2. 然后通过配置一个nib文件来提供视图同名 作为视图控制器类。例如,如果视图控制器 类名为 MyViewController,命名您的 xib 文件 MyViewController.xib。

    编辑请注意,Swift 种子 5 开始破坏这种技术,因为它破坏了它正在寻找的 .xib 文件的名称。请在此处查看我的答案以了解解决方法:https://stackoverflow.com/a/25539016/341994 基本上,此名称匹配在 iOS 8 中被破坏,但后来 Apple 悔改并修复了它,以便 它在 iOS 9 中再次工作

    【讨论】:

    • 这如何导致视图控制器加载NIB?
    • 试试吧!然后通过阅读我的书了解视图控制器如何加载 nib:apeth.com/iOSBook/ch19.html
    • @user1175914 UIViewController 的默认实现调用以类名命名的 XIB。因此,如果 ObjC 运行时在情节提要中找不到视图控制器,它必须像往常一样默认调用 NIB。或者您可以通过调用 loadNibNamed: 或其他方式提供您自己的 NIB 加载实现。
    • @JimThio 绘制从视图控制器到下一个视图控制器的segue,并给按钮一个正常的动作。在按钮的动作处理程序中,运行 segue。 - 要么,要么不按照原始问题的要求将视图控制器的视图分成单独的笔尖;只需在情节提要本身中绘制视图控制器的视图即可。
    • 有人在 Xcode 6 和 Swift 中成功使用过这种技术吗?视图控制器已加载,但屏幕为黑色。
    猜你喜欢
    • 1970-01-01
    • 2012-06-10
    • 2021-08-05
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 2013-07-13
    • 1970-01-01
    相关资源
    最近更新 更多