如何获取“更多”部分中 UITabBarItem 的标题?
我有一个 UITabBarControllerDelegate
方法,它确定 UITabBarItem
的标题并执行相应的操作。这对于我的 UITabBar
中的项目效果很好,但是当我单击“更多”按钮时,我的 UITabBarItems
的其余部分位于 UITableView
中。如何确定“更多”部分中的标题?
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
if ([self.tabBarController.selectedViewController.title isEqualToString:@"All"]) {
//do something
}
}
I have a UITabBarControllerDelegate
method that determines the title of the UITabBarItem
and does something accordingly. This works well for items in my UITabBar
but when I click on the More button the rest of my UITabBarItems
are in a UITableView
. How can I determine the title in the More section?
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
if ([self.tabBarController.selectedViewController.title isEqualToString:@"All"]) {
//do something
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
每当您在 UITabBarController 中选择视图控制器时,您提到的方法都会被调用,最重要的是,当前显示的视图控制器将作为参数传递给您;然后,您可以使用以下代码查找控制器的类和标题,包括“更多”控制器:
在快速测试中,只需在 Xcode 中添加几个控制器,这就是您在控制台中得到的内容
:另一方面,当您在“更多”列表中选择一个控制器时,您将不会在 UITabBarControllerDelegate 方法中收到通知(奇怪,恕我直言)。为了帮助您在选择该列表中的控制器时获得通知,您可以执行以下操作:
当然,您的类还应该实现 UINavigationControllerDelegate 协议。
这是示例运行的结果,使用上面的代码并在 UITabBar 和“更多”列表中点击几次:
希望这有帮助!
Whenever you select a view controller in your UITabBarController, the method you mention will be called, and most important, the view controller currently shown will be passed to you as parameter; you can then use the following code to find the class and title of the controller, including the "more" controller:
In a quick test, just by adding a couple of controllers in Xcode, this is what you get in the console:
On the other side, when you select a controller inside the "more" list, you won't be notified in your UITabBarControllerDelegate method (weird, IMHO). To help you get notifications when you select controllers in that list, you could do the following:
Your class should also implement the UINavigationControllerDelegate protocol, of course.
This is the result of a sample run, using the above code and tapping a couple of times in the UITabBar and the "more" list:
Hope this helps!