🦔
【Objective-C】UIAlertControllerの実装のやり方【Xcode11】
こういう人に向けて発信しています。
・UIAlertController(Objective-C)の実装をしたい人
・レガシーなUIAlertViewからモダンな書き方に移行したい人
・Objective-C初心者
注意:iOS8以降、UIAlertView
は非推奨になりました。
また、現在ではUIAlertControllerではなく
UIPopoverPresentaionController
を推奨しております。
改修で必要な知識としてUIAlertController
で表示したい場合はご利用ください。
UIPopoverPresentaionController
の記事は文末で紹介しております。
今回用意するクラス
・ViewController.h
・ViewController.m
上記クラスのみです。
ボタンを押下したら下記画像のようなアラートビューが
立ち上がるようにします。
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@end
ViewController.m
#import "ViewController.h" #import "popOverViewController.h"
//デリゲートの採用はしておく。
@interface ViewController ()
@end
@implementation ViewController{
UIButton *nextVCBtn;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self initButton];
// Do any additional setup after loading the view, typically from a nib.
}
-(void)initButton{
nextVCBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, self.view.bounds.size.height/2 + 50.0f, self.view.bounds.size.width, 10.0f)];
[nextVCBtn setTitle:@"アラートビュー展開" forState:UIControlStateNormal];
[nextVCBtn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
// ボタンがタッチダウンされた時にnextViewメソッドを呼び出す
[nextVCBtn addTarget:self action:@selector(tappedButton:)
forControlEvents:UIControlEventTouchDown];
[self.view addSubview:nextVCBtn];
}
- (IBAction)tappedButton:(id)sender {
[self initAlertController];
}
-(void)initAlertController{
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"UIAlertControllerStyle.Alert" message:@"iOS8" preferredStyle:UIAlertControllerStyleAlert];
// addActionした順に左から右にボタンが配置されます
[alertController addAction:[UIAlertAction actionWithTitle:@"はい"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {
// otherボタンが押された時の処理
}]];
[alertController addAction:[UIAlertAction actionWithTitle:@"いいえ"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {
// cancelボタンが押された時の処理
}]];
[self presentViewController:alertController animated:YES completion:nil];
}
@end
謝辞
こちらのサイトを参考に書かせていただきました。
追記(2019.10.28)
あえてレガシーなUIAlertControllerを記載しましたが、
こちらも合わせてご確認ください。
基本的には下記記事でも紹介しております、
UIPopoverPresentaionControllerを推奨しております。
本記事含め他の記事は「長時間1人で悩んで不安やストレスフルな方を解決したい」という一心で更新しております。少額でも構いませんのでサポートしていただけますと記事更新のモチベーションになりますので、御援助いただけますと助かります。
Discussion