Objective-C
Xcode
iOS
Swift

iOS8でUIAlertViewはこうやってUIAlertControllerに置き換える

More than 3 years have passed since last update.

iOS8対応をするに至ってUIAlertViewUIAlertControllerに置き換えなければいけないのでメモ。

Objective-Cだと、こう。

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"タイトル" message:@"メッセージ" preferredStyle:UIAlertControllerStyleAlert];

[alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
// ボタンが押された時の処理
}]];

[self presentViewController:alert animated:YES completion:^{
// 表示完了時の処理
}];

あとはOSのバージョンとかで分岐すればOK。

ちなみにSwiftだと、こう。

var alert:UIAlertController = UIAlertController(title: "タイトル", message: "メッセージ", preferredStyle: UIAlertControllerStyle.Alert)

alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: {
// ボタンが押された時の処理
}))

self.presentViewController(alert, animated: true, completion: {
// 表示完了時の処理
})

Objective-Cよりもシンプル。

ボタンの追加も分かりやすいし、何よりデリゲートで処理しなくてよくなったのはめちゃくちゃ良いと思う。