SDCAlertView回调clickButtonAtIndex未在运行时iOS调用

时间:2014-02-21 02:29:23

标签: objective-c ios7 sdcalertview

由于某种原因,从未调用SDCAlertView POD的SDCAlertView clickButtonAtIndex回调(见下面的代码块)。 SDCAlertView显示但在我在警报上选择了一个按钮后,没有调用回调。苹果alertView可以正常使用这个回调。我已将<SDCAlertView.h><UIView+SDCAutoLayout.h>导入到我的类头文件中,并确保打开工作区而不是项目,以便可以访问POD。

任何使用SDCAlertView的人遇到这个问题或看到我做错了什么?

- (void)alertView:(SDCAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex; {
        // *** NEVER MAKES IT IN HERE ***
        switch (buttonIndex) {
        case 0:
            NSLog(@"alertView: Cancel");
            break;
        case 1:
            NSLog(@"alertView: OK");
            break;
        default:
            NSLog(@"Blowing It: Alert not handled");
            break;
    }
}

下面是我的项目中的一个SDCAlertView的设置,它在我的MainViewController.m文件中声明。我正在添加一个滑块来调整耳机的音量。

    // Setup Slider for Alert View
    UISlider *volumeSlider = [[UISlider alloc] initWithFrame:CGRectMake(20, 50, 200, 200)];
    volumeSlider.maximumValue = 10.0;
    volumeSlider.minimumValue = 1.0;
    [volumeSlider addTarget:self action:@selector(sliderHandler:) forControlEvents:UIControlEventValueChanged];

    // Setup Alert View
    SDCAlertView *noHeadsetAlertView =
               [[SDCAlertView alloc]
                initWithTitle:@"No Headset"
                message:@"You need a headset you fool!"
                delegate:nil
                cancelButtonTitle:nil
                otherButtonTitles:@"Cancel", @"Use Mic", nil];
    [volumeSlider setTranslatesAutoresizingMaskIntoConstraints:NO];
    [noHeadsetAlertView.contentView addSubview:volumeSlider];

    [volumeSlider sdc_pinWidthToWidthOfView:noHeadsetAlertView.contentView offset: -20];
    [volumeSlider sdc_horizontallyCenterInSuperview];

    [noHeadsetAlertView.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[volumeSlider]|"
                                                                              options:0
                                                                              metrics:nil
                                                                                views:NSDictionaryOfVariableBindings(volumeSlider)]];

    [noHeadsetAlertView show];

可以在GitHub上找到SDCAlertView项目。

1 个答案:

答案 0 :(得分:1)

您没有在警报初始化中设置委托。将其从nil更改为self,然后调用该方法。