By Hoshino

0

iOS8からUIAlertViewが廃止 代わりに使うのはUIAlertController

Categories : Objective-C

iOS8からUIAlertViewのコールバックが上手く動かないなー
あとそういえば4日もヨーグルト以外何も食べてないなー外出るのめんどいなー
といいつつ、サイフ片手に焼き肉弁当と幕の内弁当とおにぎり3つを買いにコンビニへ行こうとしているそこのあなた。

食べ過ぎです。

そこで今回はiOS8から仲間入りしたUIAlertControllerをどのように使うのか、
iOS8とiOS7以下を場合分けで対応したコードを書いてみましょう。(BlocksKit使用)

えいやっ

NSString* message = @”この画像を削除しますか”; //実際は「message」を「massage」にするとちょっと面白い

//iOS8以上
if([UIAlertController class]) {
        UIAlertController* ac = [UIAlertController alertControllerWithTitle:nil message:message preferredStyle:UIAlertControllerStyleAlert];
        [ac addAction:[UIAlertAction actionWithTitle:@”削除” style:UIAlertActionStyleDefault handler:^(UIAlertAction* action) {
                //なんか実行
        }]];
        [ac addAction:[UIAlertAction actionWithTitle:@”キャンセル” style:UIAlertActionStyleDefault handler:nil]];
        [self presentViewController:ac animated:YES completion:nil];
}
//iOS7以下
else {
        UIAlertView* av = [[UIAlertView alloc] bk_initWithTitle:nil message:message];
        [av bk_addButtonWithTitle:@”削除” handler:^{
                //なんか実行
        }];
        [av bk_addButtonWithTitle:@”キャンセル” handler:nil];
        [av show];
}

なんとなく形は似てますね。

UIAlertControllerの方はUIViewControllerなので、
現コン(現在のUIViewController)からpresentViewControllerしなければなりませぬので注意。

あと季節の変わり目は体調管理に注意。