UIAlertView按钮不起作用

时间:2012-08-28 05:23:29

标签: uialertview xcode4.4

我正在使用警报视图在未连接互联网时提醒用户。我在警报视图中有两个按钮,它们似乎都不起作用。我已经在.h文件中实现了。我用NSLog检查点击时是否响应。它在控制台中响应,但按下按钮时什么都不做。这是我的代码片段。

- (IBAction)startButton:(id)sender 
   {
     if (![self connectedToNetwork])
     {
       UIAlertView *internetAlert = [[UIAlertView alloc] initWithTitle: @"Network Error!" message: @"You are not connected to the internet" delegate: self cancelButtonTitle: @"OK" otherButtonTitles: @"Open Settings", nil];
       [internetAlert show];
     }
   }

- (void)alertView: (UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
  { 
     if (buttonIndex == 0)
     {
        NSLog(@"Ok clicked");
        HomeViewController *blah = [self.storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
       [self.view addSubview: blah.view];
     }

     else if (buttonIndex == 1)
     {
        NSLog(@"Settings clicked");
        [[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"prefs:root=WIFI"]];
     }
}

我使用[self.contentView addSubview:blah.view],因为我没有导航控制器。对我做错了什么的想法

1 个答案:

答案 0 :(得分:0)

在这里,您使用错误的方法单击UIAlertView按钮。你必须使用另一种UIAlertView方法。

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

请更改为以下代码,它将有效。

- (IBAction)startButton:(id)sender 
{
    if (![self connectedToNetwork])
    {
        UIAlertView *internetAlert = [[UIAlertView alloc] initWithTitle: @"Network Error!" message: @"You are not connected to the internet" delegate: self cancelButtonTitle: @"OK" otherButtonTitles: @"Open Settings", nil];
        [internetAlert show];
    }
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{ 
    if (buttonIndex == 0)
    {
        NSLog(@"Ok clicked");
        HomeViewController *blah = [self.storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
        [self.view addSubview: blah.view];
    }

    else if (buttonIndex == 1)
    {
        NSLog(@"Settings clicked");
        [[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"prefs:root=WIFI"]];
    }
}

如果您还有任何问题,请与我们联系。