0

タブバーボタンが押されるたびにイベントをキャプチャしようとしてい ますが、以下の関数をファイルに追加UITabBarControllerDelegateしましたが、呼び出されません。また、IBのファーストレスポンダーにデリゲートを接続しましたAppDelegate.hAppDelegate.mtabBarController

ここの誰かが私のためにこの問題を解決するのを手伝ってもらえますか?

// AppDelegate.h

@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>

// AppDelegate.m

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

   NSLog(@"Touched Tab\n");

}

ここに画像の説明を入力してください

4

3 に答える 3

0

私があなたのグラフィックを正しく理解していれば、あなたの「デリゲート」は「ファーストレスポンダー」であってはなりません(それが何に設定されているかを知っているのは誰ですか。それはビューコントローラーかもしれませんし、キーボードかもしれませんし、基本的には、最初の返信者... )。

代わりに、デリゲートを、コード化したデリゲート メソッドが実際に存在するオブジェクトまたはクラス (ビュー コントローラー?) に設定する必要があります。デリゲートを " AppDelegate" オブジェクトに設定する必要があるようです。

于 2012-11-23T06:29:24.717 に答える
0

ここに画像の説明を入力

デリゲートを FirstResponder ではなく AppDelegate にバインドしてください。

于 2012-11-23T06:32:04.477 に答える
0

デリゲートを機能させるために必要なのは、以下の関数の 2 行だけでした。誰かの時間とフラストレーションを節約できることを願っています。

// AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

  self.m_pTabBarController = (UITabBarController *)self.window.rootViewController;
  self.m_pTabBarController.delegate = self;
  return YES;                            

}

// AppDelegate.h

@interface ftAppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>{
IBOutlet UITabBarController *m_pTabBarController;

}

@property (強力、非アトミック) UIWindow *window;

@property (非アトミック、保持) IBOutlet UITabBarController *m_pTabBarController;

@終わり

于 2012-11-27T17:08:12.367 に答える