1

私のアプリでは、このようにtabBarControllerの選択されたインデックスをプログラムで変更する状況があります

[self.tabBarController setSelectedIndex:0];

この時点で、UITableViewを含むタブに戻ります。tableViewでいくつかのアクションを実行する必要があります。viewWillAppearを使用しようとしましたが、そこに到達しませんでした。このようにビューデリゲートを作成しようとしました。

@interface ThirdViewController : UITableViewController < UISearchBarDelegate,UINavigationControllerDelegate, UITabBarDelegate> 

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

うまくいきませんでした

誰かがそれを行う方法を知っていますか?

4

4 に答える 4

2

あなたのクラスが実際にはプロトコルのメソッドであるのに、をThirdViewController実装していることに気づきました。UITabBarDelegatetabBarController:didSelectViewController:UITabBarControllerDelegate

于 2012-04-28T06:35:10.920 に答える
0

以下のコードを試してください:

self.tabBarController.selectedIndex = 1;

また

[self.tabBarController setSelectedIndex:1];

ありがとう..!

アップデート :

以下のコードで、tabBarcontrollerviewdidLoadメソッドのデリゲートを設定できます。

tabBarController.delegate=self;
于 2012-04-27T10:44:51.963 に答える
0

私にとっての解決策は、[[controller alloc] init]を作成し、コントローラーで必要なことを実行する関数をアクティブ化することでした。

于 2012-04-28T06:29:23.213 に答える
0

この単純な関数を作成して、UITabBarController内のコントローラーをプログラムで表示します。

-(void)selectVCfromIndex:(int)index{

    self.selectedIndex = index;
    [self tabBarController:self shouldSelectViewController:[self.viewControllers objectAtIndex:index]];

}

shoudSelectViewControllerプロトコルには、View Controllerを表示するための特定のコードがあり、このようにして、プログラムとユーザー操作の両方でタブが変更されたときに実行されます。

于 2014-01-17T16:04:58.290 に答える