我正在尝试使用UISegmentControl在iOS5的导航栏中创建一个切换按钮。我遇到的问题是setSelectedSegmentIndex不是持久性的,即,当用户单击细分之一时,它的动作被调用,但未设置为选定状态。我当前的代码如下所示:
// In viewDidLoad
toolSegment = [[UISegmentedControl alloc] initWithItems:
[NSArray arrayWithObjects:
[UIImage imageNamed:@"ToolPenIcon.png"],
[UIImage imageNamed:@"TextIcon.png"],
nil]];
[toolSegment addTarget:self action:@selector(changeMode:) forControlEvents:UIControlEventValueChanged];
toolSegment.frame = CGRectMake(0, 0, 85, 30);
toolSegment.segmentedControlStyle = UISegmentedControlStyleBezeled;
toolSegment.momentary = YES;
[toolSegment setSelectedSegmentIndex:1];
UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:toolSegment];
self.navigationItem.rightBarButtonItem = segmentBarItem;
self.navigationController.navigationBar.tintColor = [UIColor blackColor];
- (void)changeMode:(id)sender
{
UISegmentedControl * control = (UISegmentedControl*)sender;
if (control.selectedSegmentIndex == 0) {
NSLog(@"Print");
[toolSegment setSelectedSegmentIndex:0];
} else {
// Should change the selected index.
[toolSegment setSelectedSegmentIndex:1];
[pageView changeToText];
if (pageView.canvas.image != nil) {
[self createNewPage];
}
writing = YES;
}
}
关于我可能做错了什么的任何提示将不胜感激。
最佳答案
您可能不希望控件处于momentary
模式,因为这将允许多选。将momentary
设置为NO
。
关于objective-c - 更改UISegmentedControl selectedSegmentIndex不会更改所选索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8669812/