以前アプリの画面を開いているアプリケーションのプレビュー画面から隠すというものを書きました。先日たまたま見つけたライブラリがこのような処理を補助するものがあったので一応ご紹介。
MMAppSwitcher というライブラリです。使い方的には MMAppSwitcherDataSource プロトコルを実装して App Switcher に表示して欲しい View を返す感じです。
ライブラリの内部的には UIApplicationWillBeginSuspendAnimationNotification
という非公開な Notification をきっかけに App Switcher 用の View を表示させているようです。非公開なものなので若干審査だったり将来のバージョンアップとか大丈夫かな?って気がしますね。
こんなことをしている理由として推測するには、applicationDidEnterBackground:
のタイミングだと
- アプリ最前面
- ホームボタン1回押し
- ホーム画面が表示されたと同時にホームボタン2回押し
というような操作をされた場合には applicationDidEnterBackground:
がまだ呼ばれていないっぽいので App Switcher 用の View を用意できないんですね。だからこのライブラリの作者は willEnterBackground 相当のタイミングを探った結果 UIApplicationWillBeginSuspendAnimationNotification
にたどり着いたのだと思います。
僕がやったような "ほぼ期待する動作をする" アプローチをとるのか、MMAppSwitcher
のように攻めるのかは自己責任で。
どうでもいいけど
この「ホームボタン2回押し」で表示される機能ないし画面の Apple 的正式名称ってなんなんでしょうね?個人的に AppSwitcher って気持ち悪い。