小编Jam*_*son的帖子

UITabBarControllerDelegate - 没有为委托触发的方法?

我有一个带有4个标签的tabbarcontroller.当用户选择其中一个选项卡时,我想为新的视图控制器进行一些设置 - 即... [newVC.databaseid = self.datbaseid];

我已经为tabviewcontroller设置了控制器,因为它是viewdidload中的委托.但是我试图使用3种方法,但只有一种方法似乎开火了.

-(void) tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 
Run Code Online (Sandbox Code Playgroud)

发生火灾,

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
Run Code Online (Sandbox Code Playgroud)

- 似乎没有开火.这是我需要用来设置我新呈现的VC的那个.

只是为了看看会发生什么,我尝试使用 - (BOOL)tabBarController:(UITabBarController*)tabBarController shouldSelectViewController:(UIViewController*)viewController

并且这似乎也没有触发(我返回NO并且它没有任何区别,也没有任何记录与NSLog();

如果没有这些方法被解雇我会认为我设置了委托错了,但是有一种方法可以触发,但有两种方法没有.有任何想法吗?

我已经使用故事板设置了tabbarcontroller.

-(void) tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
    NSLog(@"item selected");
    //THIS DOES GET LOGGED
}

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    NSLog(@"new VC");
    //this does not get logged
}

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
     return NO;
    //this doesnt stop any views being presented
}
Run Code Online (Sandbox Code Playgroud)

ios

2
推荐指数
1
解决办法
3286
查看次数

标签 统计

ios ×1