2016-05-15 10 views
0

Tab Bar ControllerとNavigation Controllerの両方に埋め込まれたViewControllerがあります。それはゲーム/クイズの役割を持っていますスウィフト - ビューを変更するときに確認する

enter image description here

私は彼がビュー(変更タブを変更しようとしたときに進行中のゲームを終了したい場合、ユーザは毎回確認したい、「戻る」をクリックしますか、アプリを終了する)。

だから私の質問は次のようなものだと思います。UIAlertControllerはどこに記述すればいいですか?

+0

によって、デリゲートになることができますUINavigationBarDelegate実装については

func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool { // alert here, don't go back unless user confirms } 

をそのボタンに 'addTarget'アクションを加えてUIAlertControllerを設定します – Lamar

答えて

1

UITabBarControllerUINavigationBarUITabBarControllerDelegateおよび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;

+0

こんにちは、ありがとう、これは実際にはかなり有用だった。私はこれを動作させることはできません。 'shouldPopItem'はすぐに戻り、' UIAlertController'レスポンスを待つことさえありません。だから私はユーザーの確認後にビューコントローラをポップすることができますが、ナビゲーションバーの項目はポップされません。 @Carterを解決する方法を知っていますか? – jwitos

+0

ナビゲーションバーの意味がわからない。ユーザーが確認したら、UINavigationControllerにポップするように指示することができます。ポップすると、Barも更新されます。 – Carter

+0

バーを正しく更新しますが、 'self.popViewControllerAnimated'メソッドを実行しようとしても、ナビゲーション・スタック上のView Controller(ナビゲーション・バーの下)は前のViewにポップしません。 – jwitos

関連する問題