我的.xib文件中有一个UISwitch对象。默认状态为On。如果用户将其切换为关闭,我想问他是否确定,如果他点击否 - 自动将其切换回开启。
所以我在我的.h文件中设置了这些插座和操作:
@property (weak, nonatomic) IBOutlet UISwitch *campaignSwitch;
- (IBAction)checkCampaignSwitch:(id)sender;
这是checkCampaignSwitch方法:
- (IBAction)checkCampaignSwitch:(id)sender {
if(self.campaignSwitch.isOn==FALSE)
{
[self allertMessage:@"Receive updates" :@"Are you sure you don't want
to receive updates?" :@"No" :@"Yes"];
}
}
这要求方法显示带有各种参数的Alert消息(标题,文本,取消按钮和其他按钮)。
我还注册了UIAlertViewDelegate,在我的.m文件中,我正在尝试实现clickedButtonAtIndex方法,如下所示:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
switch (buttonIndex) {
case 0:
[self.campaignSwitch setOn:TRUE];
break;
default:
break;
}
}
我收到了Alert消息,但是当我单击No按钮时没有任何反应。也不是。 那么如何将其重新打开?
答案 0 :(得分:1)
确保在Interface Builder中连接了所有连接。另外,请确保警报视图中的switch语句与右键相关联(即确保进入案例0)。
要关闭开关,请参阅下面的代码。
// Set the switch on
[_switch setOn:YES];
// Set the switch off
[_switch SetOn:NO];
答案 1 :(得分:1)
我通常这样做,以便立即绘制:
[emailAlertSwitch setOn:NO animated:YES];
OR
[emailAlertSwitch setOn:YES animated:YES];
是否进入alertView委托回调?
答案 2 :(得分:1)
您需要使用setOn: animated:
方法
[self.campaignSwitch setOn:YES animated:YES];
简单地使用没有动画的setOn将不会显示动画。
答案 3 :(得分:1)
必须确保授权UIAlertView:
UIAlertView *displayMessage = [[UIAlertView alloc]
initWithTitle:messageTitle
message:alertMessage
**delegate:self**
cancelButtonTitle:cancelButton
otherButtonTitles:otherButton,
nil];