以下是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]
我不确定为什么会这样......
答案 0 :(得分:1)
如果不考虑[self showAvailableCuts:sender];
的代码,我可以想到的是 - 为什么你需要传递'sender'对象呢?只需修改showAvailableCuts方法,这样您就只需要传递[sender titleForSegmentAtIndex:]
,[sender selectedSegmentIndex]
等所需的值。
好的,首先,setter应该是[sender setSelectedSegmentIndex:index]
而不是你注释掉的。我自己成功地使用了这个 -
sender.selectedSegmentIndex = index; //in your case index is 1