我正在尝试使用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/

10-14 09:09
查看更多