UIAlertView不再显示

时间:2015-03-09 10:44:32

标签: ios uialertview

我也是新的iOS。在我的应用程序中我实现了UIAlertView并且想要在用户点击确定按钮时再次显示alertView并且如果用户点击取消按钮则再次显示警报视图。请帮我。 TNX 这是我的代码

    if (chek) {
            UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"" message:@"  hi " delegate:self cancelButtonTitle:@"cancel " otherButtonTitles:@"ok", nil];
                [alertView show];
    }

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
            NSString *buttontitle=[alertView buttonTitleAtIndex:buttonIndex];
           if ([buttontitle isEqualToString:@"ok"]) {
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sibche2://showapp/7030"]];
               chek=!chek ; }
            else if ([buttontitle isEqualToString:@"cancel "]){
                NSLog(@"hello my friend");
                chek=chek;
}

2 个答案:

答案 0 :(得分:1)

首先,您应该使用UIAlertController,因为不推荐使用UIAlertView。 然后你应该看一下UIAlertView的这个委托方法:

//单击按钮时调用。此调用返回后,视图将自动关闭

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;

在这里,您可以检查单击了哪个按钮而不比较字符串而是比较索引。

如果您想使用UIAlertView,可以使用:

//show alert whenever you need to
[[[UIAlertView alloc]initWithTitle:@"Title" message:@"Your error message here" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil]show];

//handle button click
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == 0)
    {
        NSLog(@"Cancel action");
    }
    else if (buttonIndex == 1)
    {
         NSLog(@"OK action");
    }
}

如果您想使用AlertController,可以使用:

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"Your error message here" preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction *cancelAction = [UIAlertAction
                                   actionWithTitle:NSLocalizedString(@"Cancel", @"Cancel action")
                                   style:UIAlertActionStyleCancel
                                   handler:^(UIAlertAction *action)
                                   {
                                       NSLog(@"Cancel action");
                                   }];

    UIAlertAction *okAction = [UIAlertAction
                               actionWithTitle:NSLocalizedString(@"OK", @"OK action")
                               style:UIAlertActionStyleDefault
                               handler:^(UIAlertAction *action)
                               {
                                   NSLog(@"OK action");
                               }];

    [alertController addAction:cancelAction];
    [alertController addAction:okAction];

    [self presentViewController:alertController animated:YES completion:nil];

我希望这会有所帮助。

答案 1 :(得分:0)

确保您拥有iOS 8的等效代码,使用上述行可能无法在iOS 8上按预期工作。

UIAlertController