以编程方式将UITabBarItem添加到UITabBar,并为其设置操作

问题描述 投票:0回答:1

我正在与iOS 6.1合作,我有一个TabBarController有两个项目,每个都推到NavigationControllerView

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

注意:现在我修改了StackOverflows中提出的几个问题,这些问题的语法几乎完全相同,但是它们的实现并不像我在这里描述的那样。

这是允许在iOS?如果没有,你会分享你对如何做的想法吗?

注意:经过几天的碰撞后,我尝试了以下方法,它有效,但我觉得它并不完全舒服。

该方法包括你的一个控制器类,

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

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中完成这个。

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

iphone ios uitabbar
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.