2011-07-28 69 views
1

我在我的viewController中使用UISegmentedControl。选中一个片段后,我希望Table的数据从NSFetchedResultsController(已经设置)加载,并从另一个片段中,我想要从数组加载数据。使用UISegmentedControl委托无法访问UITableView数据源方法

我在这里

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

使用段的委托方法这里的问题是,我似乎无法存取权限使用段的委托的tableView数据源的方法。

例如,如果在didSelectRowAtIndexPath方法中,我可以执行类似if(selectedSegment == 1),然后是xxxxx的方法。

有谁知道我该怎么做?

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

回答

1

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

例如,如果你的段被称为userSegment你只是做

self.userSegment.selectedSegmentIndex 

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

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

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

编辑:selectedSegmentIndex和其他属性,你可以使用方法的详细信息,请参见UISegmentedControl Class Reference

+0

我忘了修改上面粘贴的代码来反映我的例子。 iVar的名字现在应该都是真实的。 – Murdock