由于某种原因,从未调用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项目。
答案 0 :(得分:1)
您没有在警报初始化中设置委托。将其从nil
更改为self
,然后调用该方法。