Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在情节提要外部创建视图控制器_Ios_Objective C_Swift_Xcode_Uiviewcontroller - Fatal编程技术网

Ios 在情节提要外部创建视图控制器

Ios 在情节提要外部创建视图控制器,ios,objective-c,swift,xcode,uiviewcontroller,Ios,Objective C,Swift,Xcode,Uiviewcontroller,我需要一个小教程视频到我们的iOS项目,可以从多个视图控制器(屏幕)访问。我不想为了添加本教程而打断几十个环节,因为这会引起一场噩梦。最好的方法是创建一个不必添加到情节提要的弹出式视图控制器吗?如果是这样,我该怎么做?使用单独的.xib文件创建教程视图控制器 通过“新建文件”菜单: 然后选中突出显示的框: 当您需要显示视图控制器时,您需要从刚刚创建的nib(xib)文件初始化它 let vc = TutorialViewController(nibName: "TutorialViewCon

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

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

通过“新建文件”菜单:

然后选中突出显示的框:

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

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

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

按照以下步骤创建单独的XIB(使用Viewcontroller文件)

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

选择Cocoa Touch类别

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

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

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

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

 }

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

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

您也可以将新的视图控制器(“场景”)添加到现有的情节提要中,但不向其附加任何分段。然后,当您想在应用程序中的任何位置显示它时,您可以:

    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
文件中完成。

接下来的步骤:

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

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

 }

 //push
 self.navigationController?.pushViewController(viewController, animated: true)
  • 选择文件新建Xcode工具栏
  • 现在选择新建
  • 然后选择文件
  • 在iOS>Source下选择“Cocoa touch class”
  • 单击下一步
  • 键入所需的“类名”
  • 选择子类“UIViewController”
  • 单击并创建“XIB”
  • 选择语言“Swift”或“目标c”
  • 现在点击下一步
  • 最后,您创建了一个控制器

  • 您可以创建另一个故事板,并执行PUSH-and-POP操作程序。但是我如何从不同的视图控制器调用此xib文件?等等,这将为您提供完整的解决方案。我尝试了这个,但问题是,我的TutorialViewController没有在顶部插入所有视图控制器自动插入的选项卡控制器。怎么做?无法理解确切的问题。请详细解释,你到底想要什么?分享我设计的快照您需要做什么?每个视图控制器在顶部都有一个菜单栏,带有“后退”和“继续”选项,它们都会自动继承,因为故事板使用的是选项卡视图控制器。但是,我的xib文件是在故事板之外创建的,因此现在它不会继承任何内容。但是我如何从不同的视图控制器调用此xib文件?@moneypox121查看编辑后的答案。我尝试了这个,但问题是,我的TutorialViewController没有在顶部插入所有视图控制器自动插入的选项卡控制器。怎么做?