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

转自 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。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
创建九宫格的步骤如下: 1. 创建一个新的 Xcode 项目,选择 Single View Application。 2. 在 Main.storyboard 中添加一个 UICollectionView。在 Attributes Inspector 中将 Scroll Direction 设置为 Vertical。 3. 在 UICollectionViewCell 中添加一个 UILabel,将其居中,并设置它的控制点约束(Control Point Constraints)为 0。 4. 在 Attributes Inspector 中将 Cell Size 设置为 100 x 100,Minimum Spacing 设置为 0。 5. 在 ViewController.swift 中添加以下代码: ``` import UIKit class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate { @IBOutlet weak var collectionView: UICollectionView! let items = ["1", "2", "3", "4", "5", "6", "7", "8", "9"] override func viewDidLoad() { super.viewDidLoad() collectionView.dataSource = self collectionView.delegate = self } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return items.count } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CustomCell cell.label.text = items[indexPath.row] return cell } func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { print("You selected cell #\(indexPath.item + 1)") } } class CustomCell: UICollectionViewCell { @IBOutlet weak var label: UILabel! } ``` 6. 在 Main.storyboard 中选择 UICollectionViewCell,将其 Class 设置为 CustomCell,并将 Identifier 设置为 cell。 这样,你就可以在模拟器中运行你的应用程序,看到一个九宫格了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值