2012-02-07 17 views
0

UITabBarController内の別のタブに移動する前に特定の手順を完了しておく必要がある場合があります。だから、ユーザーが何かの真ん中にいて、別のタブをタップしている場合は、UIAlertViewを表示して「別のタブに移動する前に完了する必要があります」と表示したいと思います。ユーザーが別のタブに変更する前に満足する必要がある条件を課す

この状態を確認して別のView Controllerに移動することはできますか?あなたはそれだかもしれません

- (void)viewWillDisappear:(BOOL)animated { 
    self.tabBarController.selectedIndex = 0; 
} 

:あなたは、あなたが上でそれらを保存しておきたいビューをするタブバーコントローラ上で選択したインデックスを、それは仕方アウトだ上でビューをキャッチし、変更してみてください可能性が推測で

答えて

3

もちろん可能です。私はAppDelegateクラスのタブバーコントローラがあると思います。その場合は、AppDelegateをその代理人に設定します。次に、以下のメソッドを実装します。

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController { 
    // place all the checks here 
    EditingViewController *editingController = //link to controller where editing is being made. 
    if (editingController && editingController.isEditing) { 
    //UIAlertView 
    return NO; 
    } 
    return YES; 
} 
+0

スポットをオンにします。 Eugeneに感謝! – doNotCheckMyBlog

0

以前それらをキャッチすることができるようになる

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 

を:イベントの順序にもよるが、ビットぎくしゃくし、簡単にGoogleはあなたのビューコントローラUITabBarControllerDelegate作ることができるならば、あなたが実装できることを発見しました。あなたはApp Delegateでこれを実装し、変更を許可する必要があるかどうかを知る(またはチェックする)のが最も簡単かもしれません。

関連する問題