将单独的 xib 视图控制器加载到情节提要导航中[重复]

Posted

技术标签:

【中文标题】将单独的 xib 视图控制器加载到情节提要导航中[重复]【英文标题】:Load Separate xib view controller into Storyboard navigation [duplicate] 【发布时间】:2017-11-09 04:15:27 【问题描述】:

我有 2 个故事板,两个故事板都有共同的屏幕。我已经将它创建为带有 xib 的单独视图控制器。我想在故事板屏幕之间加载它。

【问题讨论】:

【参考方案1】:

您可以非常轻松地从 Nib 文件加载 VC。试试下面的代码:

func presentMyViewController() 
    let myVC = MainViewController(nibName:"MyViewController", bundle:nil)
    self.navigationController.pushViewController(myVC, true);
    // you could present it another way, such as:
    // self.presentViewController(myVC, true, nil)

编辑:根据评论,我认为我们不能直接从情节提要加载 xib,但如果我们需要导航到 xib,那么您可以尝试上面的代码,或者您也可以直接在 viewcontroller 上添加子视图控制器。

【讨论】:

问题是如何在情节提要中做到这一点,而不是代码。 这里的问题首先并不清楚,其次是在否决任何回复之前,您应该考虑通过发布评论来表示确认。 @SrđanStanić 对不起,我投反对票太快了。你能编辑你的答案,以便我投票吗? 已编辑。用适当的描述提出问题会很有帮助。【参考方案2】:

如下所示:

您可以在类中重写 loadview() 方法。

public class MyViewController 
    override func loadView() 
        Bundle.main.loadNibNamed("MyViewController", owner: self, options: [:])
    

   //your stuff here...


当然假设您的 XIB 是 MyViewController.xib。调整以适应。

编辑:还假设您已在 XIB 中正确设置了文件所有者引用(即到有问题的视图控制器)。

【讨论】:

以上是关于将单独的 xib 视图控制器加载到情节提要导航中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在多个 .xib 文件之间执行展开转场(不使用情节提要)

如何将创建的视图控制器集成到情节提要中?

XIB 到情节提要

在情节提要中调用 xib

如何将导航控制器添加到 xib

为单视图控制器使用情节提要或 xib?