2011-12-29 5 views
0

UISegmentControlを使用してiOS5のナビゲーションバーにトグルボタンを作成しようとしています。私が抱えている問題は、setSelectedSegmentIndexが永続的ではないことです。つまり、ユーザーがセグメントの1つをクリックすると、アクションが呼び出されますが、選択されていません。私の現在のコードは次のようになります。UISegmentedControlを変更しましたselectedSegmentIndexが選択したインデックスを変更しません

// 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; 
    }  
} 

私が間違っているかもしれないもの上の任意のヒントをいただければ幸いです。

+0

コントロールをモーメンタリモードに設定する特別な理由は何ですか?ユーザーが複数のものを選択できるようにしますか?そうでない場合は、NOに設定し、選択した索引が機能するはずです。 – Krumelur

+0

@Krumelurありがとうございました! – Anders

+0

それを聞いてうれしい。私はコメントを答えにしたので、それを受け入れて他の人を助けることができます。 – Krumelur

答えて

2

コントロールが複数の選択を可能にするので、momentaryモードになることはおそらくありません。 momentaryNOに設定してください。

関連する問題