0

当我以最有效的方式点击弹出列表视图中的每一行时,如何调用单个视图控制器?这意味着,我不必重新编码以在每个单独的视图控制器中构建 Pop Over List View 组件,它们可以像导航工具一样共享它。

我建造了什么

我在主视图控制器上构建了弹出视图控制器列表。这是执行 appDidFinishLaunching 时加载的第一个视图。因此,当我们运行应用程序时,我们会得到:

弹出列表视图的屏幕截图链接:http: //s14.postimage.org/63k567vtd/image.png

对于上面 Pop Over 列表中的每一行,我有一个方法可以在其中输入代码: 1. 确定选择了哪一行 2. 根据选择的行,执行任何操作,例如 NSLog 和东西 3. 所有这些代码位于主视图控制器中

要求

我正在构建一个演示应用程序,因此目前所有数据都是虚拟数据。

  1. 当点击弹出列表中的每一行时,我需要调用单个视图控制器。
  2. 每个视图控制器都有自己的数据集、自己的 UI 对象集、自己的 XIB 文件。
  3. 因此,如果用户点击应用程序,它必须调出应用程序 XIB 文件及其功能,然后从此处进行任何导航。如果应用程序 xib 有一个启动另一个视图的按钮,那么这个功能也应该到位。
  4. 但是,它们都必须具有相同的顶部导航栏和弹出列表按钮,因此用户可以点击该按钮并随时在应用程序中查看弹出列表。

请分享你的看法。谢谢你。

4

1 回答 1

0

我建议查看UISplitViewController. 它是 Apple 构建的一个组件,用于管理您正在尝试完成的任务。本质上,您使用 2 个视图控制器设置它;第一个(称为“主人”)将是您的表格视图。第二个(称为“细节”)将是被切换出来的视图控制器。

一旦您对其进行了一些探索并且对术语感到满意,以下是一般建议:

在主表视图控制器的didSelectRowAtIndexPath:方法中,实例化适当的视图控制器(基于 indexPath),并将其设置为详细视图控制器,如下所示:

- (void)tableView:tableView didSelectRowAtIndexPath:indexPath {
    UIViewController *newDetailVC = // make and configure a new VC based on indexPath
    self.splitViewController.viewControllers = [NSArray arrayWithObjects: self, newDetailVC, nil]];

}

以下是相应的链接:http: //developer.apple.com/library/ios/#documentation/UIKit/Reference/UISplitViewController_class/Reference/Reference.html#//apple_ref/occ/cl/UISplitViewController

以及进一步(后面的部分):http: //developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html%23

于 2012-06-17T05:47:41.773 回答