UISegmentedControl在内部添加方法时更改了事件失败

时间:2010-01-27 14:45:21

标签: iphone uisegmentedcontrol

以下是UIControlEventValueChanged的{​​{1}}事件的代码:

UISegmentedControl

我的问题是当值更改时,调用- (void)segmentAction:(id)sender{ if([sender selectedSegmentIndex] == 0){ pendingIsShowing = YES; [freeCutsTable reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationFade]; }else if([sender selectedSegmentIndex] == 1){ pendingIsShowing = NO; [self showAvailableCuts:sender]; [freeCutsTable reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationFade]; } } ,但段控件不再更改其索引。如果我注释掉方法调用,它工作正常......我试图做的是将分段控件传递给[self showAvailableCuts:sender]并改变它,但无济于事......

[self showAvailableCuts:sender]

我不确定为什么会这样......

1 个答案:

答案 0 :(得分:1)

如果不考虑[self showAvailableCuts:sender];的代码,我可以想到的是 - 为什么你需要传递'sender'对象呢?只需修改showAvailableCuts方法,这样您就只需要传递[sender titleForSegmentAtIndex:][sender selectedSegmentIndex]等所需的值。

好的,首先,setter应该是[sender setSelectedSegmentIndex:index]而不是你注释掉的。我自己成功地使用了这个 -

sender.selectedSegmentIndex = index; //in your case index is 1