32.怎样在Swift中实现TabBar和导航视图结合的项目?

时间:2022-01-30 20:39:14

  导航栏和TabBar结合的项目,在我们平常开发中会经常看到,下面我们通过自定义的TabBar来实现一个导航和TabBar结合的Demo。

1.自定义TabBar

import UIKit

class GofTabBarController: UITabBarController
{
override func viewDidLoad()
{
super.viewDidLoad(); addTabBarChildViewController(GofMainViewController(), title: "首页", imageName: "tab_home", selectedImageName: "tab_home_sel", tag: );
addTabBarChildViewController(GofDrugViewController(), title: "药品列表", imageName: "tab_drug", selectedImageName: "tab_drug_sel", tag: );
addTabBarChildViewController(GofShopcartViewController(), title: "购物车", imageName: "tab_shopcart", selectedImageName: "tab_shopcart_sel", tag: );
addTabBarChildViewController(GofMyViewController(), title: "我的", imageName: "tab_my", selectedImageName: "tab_my_sel", tag: );
} private func addTabBarChildViewController(childVC: UIViewController, title: String, imageName: String, selectedImageName: String, tag: Int)
{
let vcItem = UITabBarItem(title: title, image: gof_ImageWithName(imageName), selectedImage: gof_ImageWithName(selectedImageName)?.imageWithRenderingMode(.AlwaysOriginal));
vcItem.tag = tag;
childVC.tabBarItem = vcItem; let navigationVC = UINavigationController(rootViewController: childVC);
addChildViewController(navigationVC);
} override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem)
{
printLog("didSelectIndex:\(item.tag)");
}
}

2.怎么使用?

let vc = GofTabBarController();
self.window?.rootViewController = vc;