Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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 UIViewController中的UITableViewController_Ios_Uitableview_Uiviewcontroller_Storyboard - Fatal编程技术网

Ios UIViewController中的UITableViewController

Ios UIViewController中的UITableViewController,ios,uitableview,uiviewcontroller,storyboard,Ios,Uitableview,Uiviewcontroller,Storyboard,我是iOS和objective-C的新手,在理解控制器如何工作方面遇到了一些困难 在我的代码中,我有一个UIViewController(我的自定义控制器由情节提要指定),在它里面,我希望有一个由不同控制器处理的表以及其他对象。正确的方法是什么?将UITableViewController添加到情节提要,并创建UITableViewController的子类(新文件)。在情节提要中,转到Identity Inspector,并在类字段中输入您创建的子类的类型名称。之后,您必须根据自己的要求添加应

我是iOS和objective-C的新手,在理解控制器如何工作方面遇到了一些困难


在我的代码中,我有一个UIViewController(我的自定义控制器由情节提要指定),在它里面,我希望有一个由不同控制器处理的表以及其他对象。正确的方法是什么?

将UITableViewController添加到情节提要,并创建UITableViewController的子类(新文件)。在情节提要中,转到Identity Inspector,并在类字段中输入您创建的子类的类型名称。之后,您必须根据自己的要求添加应用程序逻辑。

在情节提要中创建另一个UITableViewController,转到其检查器,并为其分配与之前创建的UITableViewController类相同的UITableViewController类…

您可以将该表视图控制器设置为UIViewController的子视图控制器

在情节提要中,您可以通过将容器视图拖动到控制器的视图中轻松完成此操作,这将自动为您提供一个子视图控制器

您将希望:

  • 删除它提供给您的子视图控制器(它只是一个UIViewController)
  • 拖出一个表视图控制器
  • 控件从容器视图拖动到表视图控制器
  • 选择“嵌入”

如果需要从UIViewController获取对此表视图控制器的引用,可以在
prepareforsgue
中执行此操作——表视图控制器将是segue的目标视图控制器,而
prepareForSegue
将在控制器实例化后立即调用。

您需要使用嵌入式容器视图

  • 将“容器视图”从Interface Builder侧栏拖到视图中。这也会添加并链接默认的“包含”UIView/Controller

  • 删除自动添加并链接到容器视图的整个UIViewController和视图(因为您需要一个表视图控制器)

  • 将UITableViewController拖到情节提要画布上

  • 控件从容器视图拖动到表视图控制器。选择“嵌入”将UITableView包含在容器视图中

  • 剩下的是父视图,现在通过容器视图包含UITableView。表视图的控制器也位于故事板画布上


    正确的方法是让UITableView由包含它的UIViewController使用UITableViewControllerDelegate进行控制。一个好的开始是我知道,但我想有两个不同的控制器,因为我已经有一个UITableView控制器用于另一个UITableView,我想使用相同的代码。如果没有故事板,这将如何实现?在正常的xib文件中。有什么想法吗?Thanks@Malloc,您可以在代码中使用自定义容器控制器api执行此操作(它在UIViewController类引用中有自己的部分)。基本上,您可以在父控制器上调用addChildViewController:传递您希望成为子控制器的控制器。然后在子对象上调用didMoveToParentViewController:并将父对象作为参数传递。最后,将子视图添加为父视图的子视图。好主意!我学到了一些新东西,这帮了我很多。如何引用父类或子类来传输模型视图?@BillDaugherty,子类将在其parentViewController属性中引用父类,父类通过其ChildViewController数组引用其子类。