0

私は Swift でアプリをプログラミングしており、iOS 7.1 を最低としてターゲットにしています。iOS 8 では UIAlertView が廃止されていることに気付きました。

これは、アプリにアラートを表示するためにUIAlertViewのみを使用する必要があるということですか?

または、実行中の iOS のバージョンを確認するコードを使用し、実行中の iOS のバージョンに応じて、iOS 8 にはUIAlertControllerを使用し、iOS 7 を実行している場合はUIAlertViewを使用する必要がありますか?

編集: UIAlertView は iOS 7 と 8 の両方で動作することを追加する必要がありますが、両方に JUST UIAlertView を使用するか、iOS 8 の場合は代わりにチェックして UIAlertController を実行するかを考えています。もう一方は廃止されたため、新しい API を使用するのがベスト プラクティスです。そのため、両方で UIAlertView を使用するだけで問題になるかどうか知りたいです。

4

5 に答える 5

1

非推奨のメソッドが最終的に利用できなくなったり、期待した結果が得られなかったりする可能性があるため、可能な限り新しい API を使用する必要があります。UIAlertController実行時に が利用可能かどうかを確認し、利用できる場合はそれを使用する必要があります。

于 2014-10-17T18:23:48.013 に答える
1

アプリ固有の要件を考慮する必要があります。ほとんどの場合、私は rmaddy に同意します。アプリで iOS 7 のサポートを廃止するまでは、デフォルトでそのまま使用する必要があります。UIAlertViewただし、現在どのように使用UIAlertViewしているか、またUIAlertController.

機能は同じではありません。たとえば、UIAlertController2 つ以上のテキスト フィールドと、破壊的なボタン (1 つ以上) を含むアラートをサポートします。

投稿をキャンセルする場合に適した場所の一例UIAlertControllerは、Facebook アプリです。

ここに画像の説明を入力

この使用例では、iOS 8 でのみ使用可能な「削除」コマンドの赤い破壊ボタンが役立ちます。UIAlertViewこのような目的で使用している場合は、 UIAlertControlleriOS 8 での使用を検討してください。

于 2014-10-17T19:14:05.363 に答える
0

iOS API のすべての新機能を使用することを強くお勧めします。

古いアラート画面を実行できるかどうかを検出するには、次のコード スニペットを使用します。

if let gotModernAlert: AnyClass = NSClassFromString("UIAlertController") {

            println("UIAlertController can be instantiated")

            //make and use a UIAlertController

        }
        else {

            println("UIAlertController can NOT be instantiated")

            //make and use a UIAlertView
        }
}
于 2014-10-17T18:25:26.527 に答える