UIViewController里面的UITableViewController

Luc*_*ano 15 storyboard uitableview uiviewcontroller ios

我是iOS和Objective-C的新手,我在理解控制器如何工作方面遇到了一些麻烦.

在我的代码中,我有一个UIViewController(我的自定义控制器由storyboard分配),在其中,与其他对象一起,我希望有一个由不同控制器处理的表.这样做的正确方法是什么?

rde*_*mar 45

您可以使该表视图控制器成为UIViewController的子视图控制器.在故事板中,您可以通过将容器视图拖动到控制器的视图中来轻松完成此操作,这将自动为您提供子视图控制器.您将要删除它为您提供的控制器(它只是一个UIViewController),拖出一个表视图控制器,控制从容器视图拖动到表视图控制器,然后选择"嵌入".如果您需要从UIViewController获取对此表视图控制器的引用,您可以在prepareForSegue中执行此操作 - 表视图控制器将是segue的目标视图控制器,并且将在实例化控制器后立即调用prepareForSegue.

  • @Malloc,您可以使用自定义容器控制器api在代码中执行此操作(它在UIViewController类引用中有自己的部分).基本上,您在父控制器上调用addChildViewController:,传递您想要成为子控件的控制器.然后在子节点上调用didMoveToParentViewController:,将父节点作为参数传递.最后,将子视图添加为父视图的子视图. (2认同)

pka*_*amb 14

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

  1. 将Interface Builder边栏中的"Container View"拖到视图中.这也添加并链接默认的"包含"UIView/Controller.

  2. 删除自动添加并链接到容器视图的整个UIViewController和View(因为您需要一个Table View Controller).

  3. 将UITableViewController拖到Storyboard画布上.

  4. 控制 - 从容器视图拖动到表视图控制器.选择"嵌入"以在容器视图中包含UITableView.

您将离开父视图,现在通过容器视图包含UITableView.Table View的Controller也在storyboard画布上.

容器视图内的表视图控制器