iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど
『iPhone デベロッパーズ クックブック』で紹介されていた手順で、一定時間が経過すると自動で閉じるアラートの例だ。
タイマーから呼ばれる、アラートを閉じるメソッド。
- (void)performDismiss:(NSTimer *)theTimer
{
UIAlertView *alertView = [theTimer userInfo];
[alertView dismissWithClickedButtonIndex:0 animated:NO];
}
以前のiOSでは、アプリケーション側からアラートを閉じる状況は少なかった為か、『iPhone デベロッパーズ クックブック』では奇抜な方法という感じの説明だったが、アプリケーションがバックグラウンドに移行出来るようになって、バックグラウンドに遷移する際に、開いていたアラートを閉じるか、そのままにするかをアプリケーション側で判断する事になったので、この手順も普通の処理になったと思う。
アラート表示時にタイマーを仕込む。
- (IBAction)alertDismiss:(id)sender
{
UIAlertView *alertView = [[UIAlertView alloc] init];
alertView.delegate = self;
alertView.title = @"Alert Dismiss";
alertView.message = @"\n\ndismiss alert";
[NSTimer scheduledTimerWithTimeInterval:3.0f
target:self
selector:@selector(performDismiss:)
userInfo:alertView repeats:NO];
[alertView show];
}
自動で閉じる為、ボタンを用意しなかったが、ボタンがあることを前提としてレイアウトになるようで不格好となってしまった。