1

インターネットに接続されていないときにユーザーに警告するために、アラート ビューを使用しています。アラート ビューに 2 つのボタンがありますが、どちらも機能していないようです。すでに .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] を使用しました。私が間違っていることについての考え

4

1 に答える 1

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"]];
    }
}

ご不明な点がございましたら、お気軽にお問い合わせください。

于 2012-08-28T05:31:46.670 に答える