0

UIButtonを押すだけでwavファイルを再生するIOSアプリを作成しています。別のセグメントが強調表示されたときに再生されるサンプルを変更するために、UISegmentedcontrolを実装しようとしています。

これが私のviewController.hのコードです:

@property (nonatomic, retain) IBOutlet UISegmentedControl *segmentedControl;
-(IBAction)playFile1;
-(IBAction)playFile2;
-(IBAction)playFile3;
@end

およびviewController.m

@synthesize segmentedControl = segmentedControl;
-(IBAction)playFile1{
    if([segmentedControl selectedSegmentIndex] == 0){
    [rtcmixmanager playFile1];
    }
    else if([segmentedControl selectedSegmentIndex] == 1){
    [rtcmixManager playFile2];
    }
    else{
    [rtcmixManager playFile3];
    }
}

私はこの方法と、RTCMixManager.mファイルの-(IBaction)メソッド自体の下に同様のifステートメントを追加してみましたが、運がありませんでした。プロジェクトはコンパイルされますが、どのセグメントが強調表示されていても、ファイル1のみが再生されるようです。なぜこれなのか誰か知っていますか?

4

1 に答える 1

0

これを試して:

-(IBAction)segmentChanged:(id)sender{
    UISegmentedControl *segControl = ((UISegmentedControl *)sender);
    if([segControl selectedSegmentIndex] == 0){
        [rtcmixmanager playFile1];
    }else if([segControl selectedSegmentIndex] == 1){
        [rtcmixManager playFile2];
    }else{
        [rtcmixManager playFile3];
    }
}

そして、それを.xibファイルのSegmentedControlイベントの「valuechanged」に接続します

編集:次のようなコードで行うこともできます:

[segmentedControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged];
于 2012-12-12T10:08:02.193 に答える