我有一个带有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 ×1