11

次の方法でアラートを作成しています。

let alert = UIAlertView(title: "Network Unavailable",
                      message: "Oh noes!",
                     delegate: nil,
            cancelButtonTitle: "OK")
alert.show()

正常に動作します。ただし、「OK」ボタンをクリックしてアラートを閉じると、次のようになります。

警告: プレゼンテーションまたは却下の進行中に、View Controller <_UIAlertShimPresentingViewController: 0x16ea2230> から却下しようとしています!

いくつかのコンテキスト:

  1. アラートは、SKScene の didMoveToView(view: SKView!) 関数で作成されます。
  2. これは Xcode 6 ベータ 3 にあります。
  3. 私の例は迅速ですが、これはObjective-Cからも起こります

この警告が発生する理由はありますか? iOS の将来のバージョンで致命的なエラーになる場合に備えて、無視したくありません。

アップデート

また、アラートが表示されたときに、[Debug] -> [View Debugging] -> [Capture View Hierarchy] を選択すると、ビューの 3D ビューにアラートが表示されないことも追加する必要があります。これが私が間違っていることの兆候であるかどうか疑問に思っています。

4

1 に答える 1

5

私は同じ警告を受けていました:

警告: プレゼンテーションまたは却下の進行中に、View Controller <_UIAlertShimPresentingViewController:> から却下しようとしています!

iOS8 では、UIAlertController が UIAlertView に置き換わりました。これにより、(Objc で) 警告が解決されます。

UIAlertController *alert =
  [UIAlertController alertControllerWithTitle:@"Network Unavailable"
                                      message:@"Oh noes!"
                               preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction *cancelAction =
  [UIAlertAction actionWithTitle:@"Ok"   
                           style:UIAlertActionStyleCancel
                         handler:^(UIAlertAction *action) {
                                                        }];
[alert addAction:cancelAction];    
[self presentViewController:alert animated:YES completion:nil];

詳細については、UIAlertController のドキュメントを参照してください。

于 2014-07-31T00:54:23.540 に答える