我正在尝试找出如何捕获控制UITabBarController
标签切换事件的方法。我该如何实现?
我正在尝试找出如何捕获控制UITabBarController
标签切换事件的方法。我该如何实现?
在你的应用程序委托的applicationDidFinishLaunching
中实现UITabBarControllerDelegate
。
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
tabBarController.delegate = self;
[window addSubview:tabBarController.view];
}
然后实现以下任一方法:
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController;
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
第一种方法是在视图切换之前调用的,它给了你一个机会通过返回NO
来阻止视图切换。
第二种方法是在视图切换发生后调用的。
如果您正在使用故事板,请执行以下操作:
在didFinishLaunchingWithOptions方法中
UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController;
[tabBar setDelegate:self];
同样在AppDelegate中,保留<UITabBarControllerDelegate>
然后
-(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
//Write your code here
}
tabBarViewController.delegate = self
在你的类中实现UITabBarDelegate
。
你将在其中获得回调。
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
//Stuff to do
}
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
你是在寻找 UITabBarControllerDelegate
吗?特别是其中的 tabBarController:didSelectViewController:
方法?