-2

インターネット接続がないときにポップアップするアラートビューがあります。インターネット接続があるときに無効にする方法があります…。 作業コード:

-(void)reachabilityChanged:(NSNotification*)note

    {
        Reachability * reach = [note object];

        if([reach isReachable])
        {
            notificationLabel.text = @"Notification Says Reachable";
            NSLog(@"Internet is Up");



        }
        else
        {
            notificationLabel.text = @"Notification Says Unreachable";
            NSLog(@"Internet is Down");
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Please connect to Internet"
                                                            message:nil
                                                           delegate:self
                                                  cancelButtonTitle:nil
                                                  otherButtonTitle:nil
            [alert show];
        }
    }

-(void)dismissAlert:(UIAlertView *)alertView{
          [alertView dismissWithClickedButtonIndex:0 animated:YES];

}

4

3 に答える 3

1

alertView をインスタンス変数として保持し、iVar で didDismissWithButtonIndex を呼び出すことができます。したがって、アラートを viewDidLoad に割り当てて、次の後に使用できます。

-(void)reachabilityChanged:(NSNotification*)note{
        Reachability * reach = [note object];
        if([reach isReachable])
        {
            notificationLabel.text = @"Notification Says Reachable";
            NSLog(@"Internet is Up");
            [self performSelector:@selector(dismissAlert:) withObject:alert afterDelay:0];
        }
        else
        {
            notificationLabel.text = @"Notification Says Unreachable";
            NSLog(@"Internet is Down");
            //or you can realloc here your alert
            UIActivityIndicatorView *progress= [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(125, 50, 30, 30)];
            progress.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
            [alert addSubview:progress];
            [progress startAnimating];
            [alert show];
        }
    }

    -(void)dismissAlert:(UIAlertView *)alertView{
              [alertView dismissWithClickedButtonIndex:0 animated:YES];
    }

そして、必ずUIAlertViewDelegateヘッダーファイルに実装してください。

于 2012-11-22T22:06:21.433 に答える
0

UIAlertView次のインスタンス メソッドで s を閉じることができます。

- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated

すなわち

[alert dismissWithClickedButtonIndex:0 animated:YES];

もちろん、最初にそのアラート ビューへの参照を見つける必要があります。

UIAlertView クラス リファレンス

于 2012-11-22T21:57:29.210 に答える
0
  • (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex

buttonIndex 0 で破棄します。

于 2012-11-22T21:44:48.090 に答える