转自: http://www.maxiaoguo.com/clothes/250.html
UITabBarController 跟 UINavigationController一样的都是存放各种控制器,不同的是 UINavigationController 的导航作用主要在头部,而UITabBarController 是底部
UITabBarController的创建有两种方式,代码创建和通过 storyboard 创建
用storyboard 创建的时候无法检测controller中的按钮的点击,这样就需要在自定义controller,自定义好在storyboard 的属性中关联上自定义的controller
1、代码创建
在AppDelegate的生命周期中的didFinishLaunchingWithOptions 方法中其中UIViewController 是系统的 直接alloc init就行
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
// 1.创建tabbar控制器
UITabBarController *tabbarVc = [[UITabBarController alloc] init];
// 2.设置为window的根控制器
self.window.rootViewController = tabbarVc;
// 3.添加子控制器
UIViewController *vc1 = [[UIViewController alloc] init];
vc1.view.backgroundColor = [UIColor redColor];
vc1.tabBarItem.title = @"联系人";
vc1.tabBarItem.image = [UIImage imageNamed:@"tab_buddy_nor"];
// [tabbarVc addChildViewController:vc1];
UIViewController *vc2 = [[UIViewController alloc] init];
vc2.view.backgroundColor = [UIColor blueColor];
vc2.tabBarItem.title = @"动态";
vc2.tabBarItem.image = [UIImage imageNamed:@"tab_qworld_nor"];
// [tabbarVc addChildViewController:vc2];
UIViewController *vc3 = [[UIViewController alloc] init];
vc3.view.backgroundColor = [UIColor greenColor];
vc3.tabBarItem.title = @"设置";
vc3.tabBarItem.image = [UIImage imageNamed:@"tab_me_nor"];
// [tabbarVc addChildViewController:vc3];
tabbarVc.viewControllers = @[vc1, vc2, vc3];
[self.window makeKeyAndVisible];
return YES;
}
2、通过storyboard 创建 UITabBarController
下图是一个qq app的一个模型,最外层是一个tableBarController 里边层是UINavagationController ,直接在右边拖个tableBarController ,然后ctrl 连线跳转