質問: こんにちは! トップのViewControllerに ``` override func viewWillAppear(animated:Bool){ super.viewWillAppear(animated) let alert=UIAlertView(title:"確認", message:"come", delegate:nil,cancelButtonTitle:nil, otherButtonTitles:"OK") alert.show() } ``` こういうコードを書きました。 アプリを起動して表示を確認後、 ホームボタンを押して バックグラウンドにします。 アプリのボタンを押して フォアグラウンドに戻しても viewWillAppear がコールされていないと思われ メッセージが表示されません。 他のアプリを立ち上げた後、 同じことをしても同様です。 アプリのボタンを押して フォアグラウンドに戻したとき viewWillAppearをコールさせる いい方法はありませんか? 困っています。アドバイスお願いします。
回答: fuzzballさんの回答でもいいですが、別回答として `UIApplicationWillEnterForegroundNotificatio` 通知を受信してそこでアラートを出すのも手です。 必要なくなったら解除を忘れずに。 ``` override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) NSNotificationCenter.defaultCenter().addObserver(self, selector: "willEnterForegroundNotification:", name: UIApplicationWillEnterForegroundNotification, object: nil) } override func viewDidDisappear(animated: Bool) { NSNotificationCenter.defaultCenter().removeObserver(self, name: UIApplicationWillEnterForegroundNotification, object: nil) super.viewDidDisappear(animated) } func willEnterForegroundNotification(notification: NSNotification) { let alert=UIAlertView(title:"確認", message:"come", delegate:nil,cancelButtonTitle:nil, otherButtonTitles:"OK") alert.show() } ``` 以下質問とは関係ない部分です。 * `UIAlertView` は deprecated になっているので、 iOS7 に対応**しない**なら `UIAlertController` を使用した方がいいです * UIAlertController を使用するなら `viewWillAppear:` では表示できません(まだView階層に追加される前なので)。 `viewDidAppear:` で表示しましょう