我有一个tabBar
以编程方式实现。我希望能够跟踪用户是否按下了某个tabBar
项目(或按钮或所称的名称)。据我了解,这是通过继承UITabBarControllerDelegate
类来完成的。
如果我在UITabBarControllerDelegate
项导航到的其中一个类中实现tabBar
代码,则didSelectViewController
方法将起作用:
@interface ExperiencesContainerViewController () <ContainerProtocol, UITabBarControllerDelegate>
@implementation ExperiencesContainerViewController
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
NSLog(@"PRESS");
}
- (void)viewDidLoad {
[super viewDidLoad];
self.tabBarController.delegate = self;
}
现在可以使用,但是它的效果有点好,它不仅在我按下特定的class
的项目时触发,而且在我碰巧按下的任何项目时触发,即使这些项目导航到一个完全不同的类
我希望method
仅在按此特定班级的tabBar
项目时触发。然后,我想我也将在其他classes
中复制此模式,并使这些方法仅在按下它们各自的tabBar
项目时触发。
我读到了:
Detect when a tab bar item is pressed
答案表明我应该在处理UITabBarControllerDelegate
的{{1}}中实现class
。我尝试过,但是没有触发tabBar
。我认为这与method
突然被设置为与delegate
项之一不相关的class
有关。
让我知道您是否需要其他信息,或者是否需要查看更多代码。
答案 0 :(得分:0)
我相信您已经发布的链接对您来说answers是正确的。
您需要创建用于处理 app.documents[0].spreads.item(myCounter).move(LocationOptions.AFTER, app.documents[0].spreads.item(myCounter + 1));
工具tabBar
的设置和显示的类,不是 UITabBarDelegate
。然后,您可以使用正确的委托方法来检索单击tabBar的一项,然后检查它是否是您感兴趣的项。
您想要的方法是UITabBarControllerDelegate
(当用户选择标签栏项目时发送给委托人。)
更多信息here。