在 xib 文件中加载视图控制器

Posted

技术标签:

【中文标题】在 xib 文件中加载视图控制器【英文标题】:Load View controller in xib file 【发布时间】:2015-02-26 17:37:46 【问题描述】:

我想知道是否可以在 Xib 文件中的这两个视图之间进行某种分隔。

主视图被加载到情节提要的滚动视图中。 .

(所以如果我点击 Bewerken(edit) 我会被推送到右侧的视图控制器)

谢谢!

【问题讨论】:

为什么使用单独的xib文件而不是storyboard? 取决于您所说的“某种转场”是什么意思。转场是故事板的东西;如果没有故事板中涉及的两个控制器,您将无法拥有一个。不过,您可以手动推送或展示该控制器。 此 Xib 中“主”视图的内容嵌入在故事板文件中的 UIscrollview 中。 @艾克 在下面查看我的反馈作为答案。我建议切换到带有嵌入式转场的情节提要。 【参考方案1】:

我建议将其更改为情节提要内的容器视图,而不是单独的 Xib。您可以将 UIContainerView 添加和定位/调整大小作为子视图,并添加一个“Storyboard Embed Segue 以附加另一个 ViewController。这就是它在 IB/Storyboard 中的样子:

在运行时,蓝色的 UIView(或嵌入的 UIViewController,如果你喜欢)将作为子视图嵌入到宿主 UIView 中:

如果您将实现更改为这样,您将进入美丽的 segue 世界,您可以在其中拖放 segue :)

【讨论】:

【参考方案2】:

你可以做两件事:

1 - 将主视图包装在导航控制器中,以便您可以执行以下操作:

@IBAction func loadEditController(sender:UIButton)

    let editController = RegisterController(nibName:"RegisterXIB", bundle:nil)

    navigationController?.pushViewController(editController, animated: true)


2 - 在当前上下文上显示编辑控制器并自己制作动画

   @IBAction func loadEditController(sender:UIButton)

    let editController = RegisterController(nibName:"RegisterXIB", bundle:nil)
    editController.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext

    presentViewController(editController, animated: false, completion: nil)

    //Move it offscreen and the animate it here



【讨论】:

以上是关于在 xib 文件中加载视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

如何从当前视图控制器的实现文件中加载另一个视图控制器?

CollectionView 单元格未在视图控制器中加载

在导航视图控制器中加载特定视图

快速在视图控制器中加载集合视图控制器

在标签栏控件中加载视图控制器

如何在 Swift 中加载初始视图控制器?