【问题标题】:Can't access UITableView Datasource methods using delegate of UISegmentedControl无法使用 UISegmentedControl 的委托访问 UITableView 数据源方法
【发布时间】:2011-07-28 01:28:11
【问题描述】:

我在 viewController 中使用 UISegmentedControl。选择一个段后,我希望从 NSFetchedResultsController(已经设置)加载表的数据,而从另一个段中,我希望从数组加载数据。

我这里使用的是段的委托方法

- (void)segmentedControl:(SVSegmentedControl*)segmentedControl didSelectIndex:(NSUInteger)index

这里的问题是我似乎无法使用段的委托访问 tableView 数据源方法。

例如,如果在 didSelectRowAtIndexPath 方法中,我可以执行 if (selectedSegment == 1),然后 xxxxx 之类的操作,那就太好了。

有人知道我该怎么做吗?

当根据段选择行时,我想推送到不同的视图。

【问题讨论】:

    标签: iphone cocoa-touch uitableview uisegmentedcontrol


    【解决方案1】:

    假设您已将分段控件合成为属性,您当然可以从 tableView 数据源方法访问它。

    例如,如果您的段称为userSegment,您只需这样做

    self.userSegment.selectedSegmentIndex
    

    然后进行相应的操作。例如if(self.userSegment.selectedSegmentIndex == 0) {...} else {...}。您也可以使用此索引执行多种方法。查看文档。一个简单的例子:

    NSString *selectedTitle = [self.userSegment titleForSegmentAtIndex:self.userSegment.selectedSegmentIndex];
    

    这只是一个简单的示例,但重点是您可以轻松地使用段的状态来有条件地填充 tableView 数据源。

    编辑:请参阅UISegmentedControl Class Reference,了解有关selectedSegmentIndex 以及您可以使用的其他属性和方法的更多信息。

    【讨论】:

    • 我忘记编辑上面粘贴的代码以反映我的示例。 iVar 名称现在应该都与示例相符。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    • 2016-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多