iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – 如何在更多部分获得UITabBarItem的标题?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个UITabBarControllerDelegate方法,它确定UITabBarItem的标题并做相应的事情.这适用于我的UITabBar中的项目,但是当我点击“更多”按钮时,我的其余UITabBarItems都位于UITableView中.如何在“更多”部分中确定标题? - (void)tabBarController:(UITabBarController *)tabBarContro
我有一个UITabBarControllerDelegate方法,它确定UITabBarItem的标题并做相应的事情.这适用于我的UITabBar中的项目,但是当我点击“更多”按钮时,我的其余UITabBarItems都位于UITableView中.如何在“更多”部分中确定标题

- (void)tabBarController:(UITabBarController *)tabBarController did@R_262_10288@ctViewController:(UIViewController *)viewController
{

    if ([self.tabBarController.@R_262_10288@ctedViewController.title isEqualToString:@"All"]) {
        //do something
    }
}

解决方法

无论何时在UITabBarController中选择视图控制器,都会调用您提到的方法,最重要的是,当前显示的视图控制器将作为参数传递给您;然后,您可以使用以下代码查找控制器的类和标题,包括“更多”控制器:

- (void)tabBarController:(UITabBarController *)tabBarController 
 did@R_262_10288@ctViewController:(UIViewController *)viewController
{
    NSLog(@"controller class: %@",NSStringFromClass([viewController class]));
    NSLog(@"controller title: %@",viewController.titlE);
}

快速测试中,只需在xcode中添加几个控制器,这就是您在控制台中获得的:

2011-03-28 09:13:21.795 TabTest[39015:207] controller class: UIViewController
2011-03-28 09:13:21.797 TabTest[39015:207] controller title: (null)
2011-03-28 09:13:23.922 TabTest[39015:207] controller class: UITableViewController
2011-03-28 09:13:23.925 TabTest[39015:207] controller title: (null)
2011-03-28 09:13:24.505 TabTest[39015:207] controller class: UITableViewController
2011-03-28 09:13:24.506 TabTest[39015:207] controller title: (null)
2011-03-28 09:13:24.945 TabTest[39015:207] controller class: UIMoreNavigationController
2011-03-28 09:13:24.945 TabTest[39015:207] controller title: More

另一方面,当您在“更多”列表中选择一个控制器时,您将不会在UITabBarControllerDelegate方法中得到通知(很奇怪,恕我直言).为了帮助您在该列表中选择控制器时收到通知,您可以执行以下操作:

- (void)tabBarController:(UITabBarController *)tabBarController 
 did@R_262_10288@ctViewController:(UIViewController *)viewController
{
    NSLog(@"controller class: %@",viewController.titlE);

    if (viewController == tabBarController.moreNavigationController)
    {
        tabBarController.moreNavigationController.delegate = self;
    }
}

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    if (navigationController == self.tabBarController.moreNavigationController)
    {
        NSLog(@"more controller class: %@",NSStringFromClass([viewController class]));
        NSLog(@"more controller title: %@",viewController.titlE);
    }
}

当然,您的类还应该实现UINavigationControllerDelegate协议.

这是样本运行的结果,使用上面的代码并在UITabBar和“more”列表中点击几次:

2011-03-28 09:27:42.496 TabTest[39113:207] controller class: UIViewController
2011-03-28 09:27:42.498 TabTest[39113:207] controller title: (null)
2011-03-28 09:27:44.306 TabTest[39113:207] controller class: UIMoreNavigationController
2011-03-28 09:27:44.307 TabTest[39113:207] controller title: More
2011-03-28 09:27:44.310 TabTest[39113:207] more controller class: UIMoreListController
2011-03-28 09:27:44.311 TabTest[39113:207] more controller title: More
2011-03-28 09:27:45.632 TabTest[39113:207] more controller class: SecondViewController
2011-03-28 09:27:45.634 TabTest[39113:207] more controller title: (null)
2011-03-28 09:27:47.156 TabTest[39113:207] more controller class: UIMoreListController
2011-03-28 09:27:47.156 TabTest[39113:207] more controller title: More
2011-03-28 09:27:48.581 TabTest[39113:207] controller class: UITableViewController
2011-03-28 09:27:48.582 TabTest[39113:207] controller title: (null)

希望这可以帮助!

大佬总结

以上是大佬教程为你收集整理的iphone – 如何在更多部分获得UITabBarItem的标题?全部内容,希望文章能够帮你解决iphone – 如何在更多部分获得UITabBarItem的标题?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。