1

私が試したのは:

- (void)main
{
    NSError *err = (__bridge NSError *)error;
                    UIAlertController * alert = [UIAlertController
                                                 alertControllerWithTitle:NSLocalizedString(@"Error", nil)
                                                 message:err.localizedDescription
                                                 preferredStyle:UIAlertControllerStyleAlert];


                    UIAlertAction* ok = [UIAlertAction
                                         actionWithTitle:@"OK"
                                         style:UIAlertActionStyleDefault
                                         handler:^(UIAlertAction * action)
                                         {
                                             //Do some thing here
                                            [self.window.rootViewController dismissViewControllerAnimated:YES completion:nil];
                                         }];
...
}

問題はself.window、私のNSOperationサブクラスにアクセスできないことです。アラートコントローラーを提示する他の方法はありますか?

4

1 に答える 1

1

UIApplicationDelegateインスタンスは window オブジェクトを保持するため、それを取得して目的に使用できます。

  [[UIApplication sharedApplication].delegate window]

また[UIApplication sharedApplication]、役に立つと思われる他の方法も提供します。

  • - windows- すべてのウィンドウの配列。
  • – keyWindow- キーボード入力 (または nil) を受け取っているウィンドウを指定します。

追加のウィンドウを作成しない場合は、使用して[[UIApplication sharedApplication].delegate window]も問題ありません。

于 2014-10-22T08:20:48.267 に答える