我有一个带有 4 个选项卡的 tabbarcontroller。当用户选择其中一个选项卡时,我想为新视图控制器进行一些设置 - 即 ...[newVC.databaseid=self.datbaseid];
我已经为他的 tabviewcontroller 设置了控制器,因为它是 viewdidload 中的代表。但是我尝试使用 3 种方法,但似乎只有一种方法可以触发。
-(void) tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
会火,
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
- 似乎没有开火。这是我需要用来设置我新提出的 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
}