Yan*_*Yan 26 iphone uitabbarcontroller iphone-sdk-3.0
我正在试图弄清楚如何捕获控制开关标签的事件
UITabBarController.我怎么能做到这一点?
cid*_*red 35
UITabBarControllerDelegate例如,在您的应用程序委托中实现applicationDidFinishLaunching
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
tabBarController.delegate = self;
[window addSubview:tabBarController.view];
}
Run Code Online (Sandbox Code Playgroud)
然后执行:
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController;
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
Run Code Online (Sandbox Code Playgroud)
第一种方法在视图切换之前调用,让您有机会通过返回"否决"视图切换 NO
在视图切换发生后调用第二种方法
nit*_*ddy 13
如果您使用的是故事板,请执行此操作
在didFinishLaunchingWithOptions中
UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController;
[tabBar setDelegate:self];
Run Code Online (Sandbox Code Playgroud)
同样在AppDelegate中,保持 <UITabBarControllerDelegate>
然后
-(void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
//Write your code here
}
Run Code Online (Sandbox Code Playgroud)
迟到总比不到好。如果是 swift 4,您可以按照以下方式进行操作。
tabBarViewController.delegate = self
Run Code Online (Sandbox Code Playgroud)
并UITabBarDelegate在课堂上实施。您将收到回调
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
//Stuff to do
}
Run Code Online (Sandbox Code Playgroud)
看看UITabBarControllerDelegate中的以下方法:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
Run Code Online (Sandbox Code Playgroud)
告诉代表该用户用户在选项卡栏中选择了一个项目。