【问题标题】:Switch to segmented control index within UITabBarController切换到 UITabBarController 中的分段控制索引
【发布时间】:2014-03-01 06:25:44
【问题描述】:

我有一个带有 2 个选项卡的 UITabBarController,分别称为 A 和 B。B 在它的视图控制器中有一个 UISegmentedControl。当我在选项卡 A 中时,如何以编程方式切换到选项卡 B 和分段控件中的某个索引?

我知道我可以这样做来切换标签:

self.tabBarController.selectedIndex = 1;

但是如何切换到分段控件中的某个索引呢?

【问题讨论】:

    标签: ios objective-c cocoa-touch uitabbarcontroller uisegmentedcontrol


    【解决方案1】:

    假设您的主 VC 中有 viewControllerA 和 viewControllerB 的 @properties,并假设您的 viewControllerB 中有一个 @property segmentedControl:

    [self.viewContollerB.segmentedControl setSelectedSegmentIndex:1]
    

    【讨论】:

    • 这是一个糟糕的设计。两个独立的视图控制器不应该知道彼此的视图。这是一个脆弱且紧密耦合的设计。
    【解决方案2】:

    为此,正确的方法是让 View Controller A (VCA) 向应用程序委托发送一条消息,然后由它向 VCB 发送一条消息。这些都不应该对分段控制一无所知。当调用 VCB 上的方法时,视图控制器应该知道根据需要更新其视图。

    VCA 和 VCB 不应该相互了解对方,当然也不应该访问对方的任何观点。

    另一种选择是让两个视图控制器都使用一些通用的数据模型。然后,当 VCA 更新模型时,VCB 可以根据需要通过更新自身来对更改做出反应。那么两个 VC 都不需要向应用代理发送消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多