代码之家  ›  专栏  ›  技术社区  ›  Kaspa

在UINavigationController UINavigationBar上设置UISegmentedControll的正确方法全部在UIDABBARC控制器内

  •  2
  • Kaspa  · 技术社区  · 15 年前

    标题几乎描述了这一切。

    问题在于UISegmentedControll回调(按钮按下)的处理。 如果所有嵌套视图的内容类型都相同(即一些UITableViewController),那么我可以切换数据源并重新加载表。

    然而事实并非如此,我有3个非常不同的视图,它们允许基于NavigationController进行进一步的深入研究/交互。

    所以我设置ATM的方式是,有一个“容器”类,我把所有的UINavigationController都放在这个类中。它们都共享同一个UISegmentedController,我将回调重定向到容器视图控制器。这感觉一点也不好。

    此外,当用户点击选项卡栏图标时,导航控制器会弹出到根目录,这是。。。空容器视图。

    以下是我想要实现的目标:

    alt text

    2 回复  |  直到 6 年前
        1
  •  0
  •   David Sowsy    15 年前

    在我的一个应用程序中,我有一个表视图,它由三个独立的NSMutableArray的数据填充。我有条件地在cellForRowAtIndexPath中设置单元格内容,并有条件地在NumberOfRowInSection中获得3个不同的计数。虽然这并不是你想要的,但你不需要像你最初的例子中所表达的那样有3个不同的数据源。

    你的直觉是正确的。这看起来确实太复杂了。

    使用一个NavigationController并在NavigationController上交换addSubview/removeFromSuperview怎么样。看法

        2
  •  0
  •   Community CDub    8 年前

    我在最近的一个iPad应用程序中遇到了类似的功能需求,我使用的解决方案是在下面的链接中——本质上,我实现了一个“管理”视图控制器,它根据分段控件的选定索引添加/删除子视图,并正确处理事件。

    我通过将“管理”视图控制器作为参数传递到子视图视图控制器中,并让这些控制器调用父视图以推送到导航堆栈上,从而解决了导航控制器的问题。

    我特别喜欢这个解决方案的一点是,它让我能够将每个片段对应视图的代码分开,而不是在单个重载视图控制器中混乱。

    详情如下: UISegmentedControl Best Practice

    好问题,伙计,希望能帮上忙。