Delete important stuff? That doesn't seem like a good idea. Are you sure you want to do that?
どうも、佐野です。今回は UIAlertView の拡張カテゴリを作って、delegate ではなく Block でコールバック処理を記述するための拡張カテゴリの作り方を紹介します。 iOS4 から Objective-C では Blocks という独自のクロージャ機能が搭載されました。これによってアニメーションの記述やコールバック処理などグッと直観的・効率的に記述できるようになったのですが、残念ながら UIKit によって提供されているクラスの多くはまだ Blocks に最適化された作りになっていません。UIAlertView もそのひとつです。 UIAlertView は、その delegate を実装することでユーザアクションに対する処理を記述する訳ですが、どうも使い勝手が悪い。例えば、同じで画面内で2通りの UIAlertView を表示するような UIViewController
アプリ開発をしていると、何気なくUIAlertViewを使っているけれど、タイミングによっては表示がずれて、意図していないタイミングで表示されることがある。 結構苦しめられたが、やっと再現方法がわかったので備忘メモ。 現象としては、「UIAlertViewのshowをコールするメソッドの処理中にホームボタンで再起動すると、AlertViewは表示されず、別のAlertViewを表示し閉じた後につられて先ほど表示されなかったAlertViewが表示される」というもの。 具体的なサンプルは以下の通り。 サンプル 以下のような画面のアプリを用意。 上のボタン:すぐにAlertを表示 下のボタン:3秒間処理した後にAlertを表示 //Show Alert View (NOW)ボタンのアクション - (IBAction)tappedShowAlertViewNow:(id)sender { UIA
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く