我正在使用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 中完成此操作。
如果有人可能遇到相同的问题,或者如果您有不同的方法,请分享。