2017-01-13 12 views
0

ユーザーがタブバーのボタンからアクセス可能な特定のビューコントローラにアクセスするのを防ぎ、その代わりにアラートでログインするようにしたいと考えています。私はボタンを無効にすることができますが、(警告を発するために)無効なタブバーボタンのボタンを押すことを検出する唯一の方法は、複雑なように見えるジェスチャ認識機能を備えた別のビューにボタンを埋め込むことです。ios/objective-c:tabbarbuttonが押されたイベントを検出する

また、ボタンを有効にしたままにしておくと、ボタンを押したときに警告が表示されずに割り当てられたビューコントローラが起動されます。

プレスを検出してセグをプリビューしてアラートを表示する方法はありますか?

私のアプリデリゲートと(uitabbarcontrollerデリゲートプロトコルに加入している)個々のビューコントローラのviewdidloadで以下のメソッドを使用しようとしましたが、起動しません。

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

    NSUInteger indexOfTab = [theTabBarController.viewControllers indexOfObject:viewController]; 
    NSLog(@"Tab index pressed = %lu", (unsigned long)indexOfTab); 
    //launch alert 
//prevent segue to view controller 
} 

答えて

0

あなたのUITabBarControllerに実装する必要が方法は次のとおりです。

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController 

ユーザーがあなたは彼がいなかったらYES、警告を表示し、NOを返す返さログインしている場合。どの項目が押されたのかは、viewControllerと、ユーザに記録させたい項目を比較することで確認できます。

UITabBarController代理人プロトコルにサブスクライブするコントローラでこのメソッドを実装する必要はありませんが、UITabBarControllerのサブクラスに実装する必要があります。

関連する問題