Tab Bar ControllerとNavigation Controllerの両方に埋め込まれたViewControllerがあります。それはゲーム/クイズの役割を持っていますスウィフト - ビューを変更するときに確認する
私は彼がビュー(変更タブを変更しようとしたときに進行中のゲームを終了したい場合、ユーザは毎回確認したい、「戻る」をクリックしますか、アプリを終了する)。
だから私の質問は次のようなものだと思います。UIAlertController
はどこに記述すればいいですか?
Tab Bar ControllerとNavigation Controllerの両方に埋め込まれたViewControllerがあります。それはゲーム/クイズの役割を持っていますスウィフト - ビューを変更するときに確認する
私は彼がビュー(変更タブを変更しようとしたときに進行中のゲームを終了したい場合、ユーザは毎回確認したい、「戻る」をクリックしますか、アプリを終了する)。
だから私の質問は次のようなものだと思います。UIAlertController
はどこに記述すればいいですか?
UITabBarController
とUINavigationBar
、UITabBarControllerDelegate
およびUINavigationBarDelegate
の両方のデリゲートを実装できます。 UITabBarControllerDelegate
については
は実装しています
func navigationBar(navigationBar: UINavigationBar, shouldPopItem item: UINavigationItem) -> Bool {
// alert here, don't go back unless user confirms
}
を注:UINavigationBar
はあなたUINavigationController
の財産である - あなたがそうnavigationController.navigationBar.delegate = self;
こんにちは、ありがとう、これは実際にはかなり有用だった。私はこれを動作させることはできません。 'shouldPopItem'はすぐに戻り、' UIAlertController'レスポンスを待つことさえありません。だから私はユーザーの確認後にビューコントローラをポップすることができますが、ナビゲーションバーの項目はポップされません。 @Carterを解決する方法を知っていますか? – jwitos
ナビゲーションバーの意味がわからない。ユーザーが確認したら、UINavigationControllerにポップするように指示することができます。ポップすると、Barも更新されます。 – Carter
バーを正しく更新しますが、 'self.popViewControllerAnimated'メソッドを実行しようとしても、ナビゲーション・スタック上のView Controller(ナビゲーション・バーの下)は前のViewにポップしません。 – jwitos
によって、デリゲートになることができます
UINavigationBarDelegate
実装についてはをそのボタンに 'addTarget'アクションを加えてUIAlertControllerを設定します – Lamar