0

我正在使用iOS 6.1,我有TabBarController两个项目,每个项目都在推动一个NavigationControllerView.

如何从任何子控制器UITabBarItem向 , 添加新的,并设置特定操作。TabBarController

注意:现在我修改了几个问题,StackOverflows措辞几乎与这个问题相同,但是它们的实现并不像我在这里描述的那样。

这是允许的iOS吗?如果没有,您会分享您的想法吗?

注意:经过几天的颠簸,我尝试了以下方法,它奏效了,但我对此并不完全满意。

该方法包括拥有一个控制器类,

1) 让您的控制器类之一继承 UITabBarControllerDelegate。在我的例子中,我在最有可能在 AppDelegate 之后第一次实例化的类中实现了这个委托,换句话说,属于应用程序第一个视图的类,例如

interface MainTableViewController: UITableViewController <UITabBarControllerDelegate>
...

2)在viewDidLoad中设置TabBarController的委托

self.tabBarController.delegate = self;

3) 实现协议tabBarController:shouldSelectViewController:,使用该方法可以控制显示哪个视图。

就我而言,我之前添加了一些虚拟视图控制器,并且我给每个 BarItem 一个不同的标签号

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
    switch (viewController.tabBarItem.tag) {
        case 3:
        {
            [self someActionA];
            return NO;
        }
        case 4:
        {
            [self someActionB];
            return NO;
        }
        default:
            return YES;
    }
}

到目前为止,这段代码将完成我最初真正想要的技巧,但是我希望我可以在 AppDelegate 中完成此操作。

如果有人可能遇到相同的问题,或者如果您有不同的方法,请分享。

4

1 回答 1

1

您可以使用 Inheritence from 创建新控制器并在-->UITabBarController上添加自定义按钮,因此发送到后面,您的自定义按钮显示在前面。您可以使用此自定义按钮设置任何特定操作。否则 iOS SDK 不允许对.UITabBarUITabBarItemUITabBarItemUITabBarItem

于 2013-09-08T14:34:27.807 回答