在我的iPhone应用程序中,我有一个公共标签栏,其中有三个标签,按下按钮后可以从多个视图中显示.我遵循的方法是Tweetie应用程序的工作流程,在Robert Conn的帖子中描述.
注意,主控制器是导航控制器; 标签栏放置在导航堆栈的视图控制器的NIB文件中,并且在委托的didSelectItem方法中处理在标签之间切换的效果.
@interface GameTabBarController : UIViewController<UITabBarDelegate> {
UITabBar *tabBar;
UITabBarItem *lastGameTabBarItem;
UITabBarItem *previousGamesTabBarItem;
UITabBarItem *myBetsTabBarItem;
NSArray *viewControllers;
UIViewController *currentViewController;
}
@implementation GameTabBarController
...
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
UIViewController *viewController = nil;
// Get the view controller linked to the tab bar item pressed
...
// Switch to the view
[self.currentViewController.view removeFromSuperview];
[self.view addSubview:viewController.view];
self.currentViewController = viewController;
}
...
@end
Run Code Online (Sandbox Code Playgroud)
由于必须根据应用程序来自的视图控制器来自定义选项卡栏的视图,因此我将其GameTabBarController作为具有该选项卡栏的NIB文件的父类.然后,我创建了几个子类:
@interface FirstGameTabBarController : GameTabBarController {
...
}
@interface SecondGameTabBarController : …Run Code Online (Sandbox Code Playgroud)