代码之家  ›  专栏  ›  技术社区  ›  mobibob

未调用我的UITabArcController的DidSelectViewController方法?

  •  3
  • mobibob  · 技术社区  · 14 年前

    这是我的应用程序委托的代码存根。

    - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
        NSLog(@"%s", __FUNCTION__);
    }
    

    它在这个应用程序委托中定义。

    @interface OrioleAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {
        UIWindow *window;
        UITabBarController *tabBarController;
    }
    
    @property (nonatomic, retain) IBOutlet UIWindow *window;
    @property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
    
    @end
    
    3 回复  |  直到 6 年前
        1
  •  15
  •   Shaggy Frog    14 年前

    你和你的 UITabBarController 你的申请代表呢?

    - (void)applicationDidFinishLaunching:(UIApplication *)application
    {
         ...
         tabBarController.delegate = self;
         ...
    }
    
        2
  •  15
  •   CedricSoubrie    11 年前

    如果您的视图控制器是 UITabBarController ,您需要将自己设置为它的委托,因为您不能更改 UITabBar 直接。

    例如,在视图中加载 Uitababarcontroller(Uitababarcontroller) :

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        self.delegate = self;
    }
    
        3
  •  0
  •   mobibob    14 年前

    我添加了以下内容 tabBarController.delegate = self; 一切都很好。我希望这对其他人有帮助。

    - (void)applicationDidFinishLaunching:(UIApplication *)application {
    
        // Add the tab bar controller's current view as a subview of the window
        tabBarController.delegate = self;
        [window addSubview:tabBarController.view];
    }