0

以前の質問からアドバイスを受けて、コードをかなり変更しました。タブ バーの項目がいつタッチされたかを検出しようとしています。選択したインデックスがゼロの場合、nslog で「moo」が返されるはずです。欠落している可能性があります。些細なこと。

ビューコントローラー1

     TUHomeViewController *homeViewController = [[TUHomeViewController alloc] initWithNibName:nil bundle:nil];
UINavigationController *homeNavigationController = [[UINavigationController alloc] initWithRootViewController:homeViewController];
homeNavigationController.tabBarItem = [[DSTabBarItem alloc] initWithFinishedSelectedImage:[UIImage imageNamed:@"home"] 
                                                            finishedUnselectedImage:[UIImage imageNamed:@"home1"]
                                                                                 iconSize:CGSizeMake(76, 59)
                                                                                tag:0];
[tabBarViewControllers addObject:homeNavigationController];

ビューコントローラー2.h

     @interface viewcontroller2 : UIViewController<UIWebViewDelegate,UITabBarControllerDelegate>{

       }

ビューコントローラー2

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

if(self.tabBarController.selectedIndex == 0){
    NSLog(@"MOO");
 return(TRUE);

}
return(FALSE);
 }

  - (void)viewDidLoad {
  [super viewDidLoad];
   self.delegate = self;
   }
4

2 に答える 2

0

デリゲートを自分自身に設定します。

[tabBarViewControllers setDelegate:self];
于 2013-03-19T17:26:15.543 に答える
0

appdelegare(作成している場所)にtabBarデリゲートを実装するだけです

self.objTabBarController.delegate=self;

そして、そのデリゲート メソッドを appdelegate に実装します

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
    NSLog(@"MOO");
    return YES;
}
于 2013-03-19T17:27:10.550 に答える