iOS 使用代码和storyboard分别创建UITabBarController

来源:互联网 发布:ubuntu 17.04 cuda8.0 编辑:程序博客网 时间:2024/06/01 09:27

转自 http://blog.csdn.net/ssrrxx111/article/details/48315843

1、iOS中最常见的一种布局,在底部设置Tab导航,分别控制不同的视图。


2、使用代码的方式创建UITabBarController。

1)在AppDelegate的

[html] view plain copy
 print?
  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
方法中,新建UITabBarController,然后新建自己需要的UIViewController或者UITableViewController。将这些视图作为UINavigationController的根视图。使用方法initWithRootViewController。

2)设置UITabBarController的viewControllers属性,这里是一个数组,可以把之前的UINavigationController设置在数组中。

3)获取UITabBarController的tabBar属性。然后创建多个UITabBarItem与上面的视图对应起来。设置UITabBarItem的title和image,分别对应标题和图像。

在tabbarcontroller中最多只能放4个tab,如果超过了4个,那么后面的都会自动生成一个More的tab,然后将多余的tab项放在More对应的TableViewController视图中。

使用代码创建UITabBarController的代码如下:

[objc] view plain copy
 print?
  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
  2.     // Override point for customization after application launch.  
  3.       
  4.     MainController *mainController = [[MainController alloc] init];  
  5.     BaseNavigationController *mainNavCtl = [self initlizerNavigationControllerWithRootViewController:mainController];  
  6.       
  7.     MainController *mainController2 = [[MainController alloc] init];  
  8.     BaseNavigationController *mainNavCtl2 = [self initlizerNavigationControllerWithRootViewController:mainController2];  
  9.       
  10.     MainController *mainController3 = [[MainController alloc] init];  
  11.     BaseNavigationController *mainNavCtl3 = [self initlizerNavigationControllerWithRootViewController:mainController3];  
  12.       
  13.     MainController *mainController4 = [[MainController alloc] init];  
  14.     BaseNavigationController *mainNavCtl4 = [self initlizerNavigationControllerWithRootViewController:mainController4];  
  15.   
  16.       
  17.     //设置底部tabbar  
  18.     UITabBarController *tab = [[UITabBarController alloc] init];  
  19.     tab.viewControllers = @[mainNavCtl,mainNavCtl2,mainNavCtl3,mainNavCtl4];  
  20.       
  21.     UITabBar *tabBar = tab.tabBar;  
  22.       
  23.     UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0];  
  24.     UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1];  
  25.     UITabBarItem *tabBarItem3 = [tabBar.items objectAtIndex:2];  
  26.     UITabBarItem *tabBarItem4 = [tabBar.items objectAtIndex:3];  
  27.     tabBarItem1.title=@"用户";  
  28.     tabBarItem1.image=[UIImage imageNamed:@"github60"];  
  29.       
  30.     tabBarItem2.title=@"位置";  
  31.     tabBarItem2.image=[UIImage imageNamed:@"github160"];  
  32.       
  33.     tabBarItem3.title=@"发现";  
  34.     tabBarItem3.image=[UIImage imageNamed:@"github60"];  
  35.       
  36.     tabBarItem4.title=@"更多";  
  37.     tabBarItem4.image=[UIImage imageNamed:@"more"];  
  38.       
  39.       
  40.     //设置选中的tabitem,也可以使用selectedViewController  
  41. //    tab.selectedIndex = 2;  
  42.     self.window.rootViewController=tab;  
  43.       
  44.       
  45.       
  46.     return YES;  
  47. }  

3、使用storyboard创建UITabBarController的方式比较简单。

1)在sb中,选择对象视图,选择Tab Bar Controller,拖到sb中。


此时在sb中你可以看到一个TabBarController对应两个UIViewController

2)新建ViewController或者TableViewController。选中TabBarController视图最顶上的第一个小圆点,使用control键连接新建的视图,用这种方式新建segue,选择Relationship Segue下的view controllers。


使用上面的方式就可以创建成功了。然后还可以在sb中直接定义每一个tabbaritem的title和imge。

0 0
原创粉丝点击