【问题标题】:Create a view controller outside of storyboard [closed]在情节提要之外创建一个视图控制器[关闭]
【发布时间】:2018-01-18 15:42:12
【问题描述】:

我需要一个可以从多个视图控制器(屏幕)访问的 iOS 项目的小型教程视频。我不想打破几十个segues来添加这个教程,因为它会导致一场噩梦。最好的方法是创建一个不必添加到情节提要的弹出视图控制器吗?如果是这样,我该怎么做?

【问题讨论】:

  • 您可以创建另一个故事板,并以编程方式进行 PUSH 和 POP 操作

标签: ios objective-c swift xcode uiviewcontroller


【解决方案1】:

使用单独的.xib 文件创建您的教程视图控制器。

通过新建文件菜单:

然后选中突出显示的框:

当你需要展示你的视图控制器时,你需要从你刚刚创建的 nib (xib) 文件中初始化它。

let vc = TutorialViewController(nibName: "TutorialViewController", bundle: nil)
present(vc, animated: true)

【讨论】:

  • 但是如何从不同的视图控制器调用这个 xib 文件?
  • @monekypox121 查看编辑后的答案。
  • 我试过这个,但问题是我的 TutorialViewController 没有在顶部继承所有视图控制器自动继承的选项卡控制器。该怎么做?
【解决方案2】:

您可以使用 XIB 文件,而无需将其与故事板集成。

按照这些步骤创建单独的 XIB(使用 Viewcontroller 文件)。

创建新文件:Xcode >> 新建 >> 文件

选择Cocoa Touch Class

提供视图控制器名称并启用 XIB 选项

现在,打开您的 XIB(视图控制器):

var viewController = TestViewController(nibName: "TestViewController", bundle: nil)

 // Present
 self.present(viewController, animated: true) {

 }

 //push
 self.navigationController?.pushViewController(viewController, animated: true)

我建议使用推送导航。它会自动将导航栏和后退按钮添加到您的控制器

【讨论】:

  • 但是如何从不同的视图控制器调用这个 xib 文件?
  • 等等,我们会为您提供完整的解决方案。
  • 我试过这个,但问题是我的 TutorialViewController 没有在顶部继承所有视图控制器自动继承的选项卡控制器。该怎么做?
  • 无法理解确切的问题。请详细解释一下,你到底想要什么?分享我的设计快照你到底需要做什么?
  • 每个视图控制器的顶部都有一个菜单栏,带有“返回”和“继续”选项,它们都会自动继承这一点,因为故事板使用的是选项卡视图控制器。但是,我的 xib 文件是在故事板之外创建的,所以现在它没有继承任何东西。
【解决方案3】:

您还可以将新的视图控制器(“场景”)添加到现有的 Storyboard,但向其附加任何转场。然后,当您想从应用中的任何位置显示它时,您可以:

    if let vc = self.storyboard?.instantiateViewController(withIdentifier: "PopUpTutorial") as? PopUpTutorial {
        self.present(vc, animated: true, completion: nil)
    }

您还可以创建一个额外的故事板文件并在那里构建您的“教程”屏幕。然后您将代码更改为:

    let sb = UIStoryboard(name: "Tutorial", bundle: nil)
    if let vc = sb.instantiateViewController(withIdentifier: "PopUpTutorial") as? PopUpTutorial {
        self.present(vc, animated: true, completion: nil)
    }

这不必在单独的xib 文件中完成。

【讨论】:

    【解决方案4】:

    要跟随的宠物:

    1. 选择文件新建 Xcode 工具栏
    2. 现在选择新建
    3. 比选择文件
    4. 在iOS>Source下选择“Cocoa touch class”
    5. 点击下一步
    6. 输入你想要的“类名”
    7. 选择子类“UIViewController”
    8. 点击同时创建一个“XIB”
    9. 选择语言“Swift”或“Objective c”
    10. 现在点击下一步。
    11. 您终于创建了一个控制器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      • 2023-04-10
      • 2014-08-12
      • 2019-12-31
      • 1970-01-01
      • 2016-07-21
      • 2014-12-26
      相关资源
      最近更新 更多