分段控制不影响循环 - (IBaction)方法

时间:2012-12-12 09:57:34

标签: objective-c uibutton uisegmentedcontrol ibaction

我正在制作一个IOS应用程序,它可以在UIButton的压力下播放wav文件。我正在尝试实现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];
    }
}

我已经尝试了这个方法,并在 - (IBaction)方法本身的RTCMixManager.m文件中添加了一个类似的if语句,没有运气。 该项目将编译,但它似乎只播放文件1,无论哪个段高亮。有谁知道这是为什么?

1 个答案:

答案 0 :(得分: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文件中的Segmented Control事件的“值已更改”

编辑: 您也可以使用以下代码执行此操作:

[segmentedControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged];