你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 三種方法讓TabBarController和NavigationController並存

三種方法讓TabBarController和NavigationController並存

編輯:IOS開發綜合
TabBarController中需要使用NavigationController,這樣可以實現TabbarController中的視圖導航。我總結了三種方法去實現,以供大家參考。 第一種:最簡單的是從NavigationController下手,先用TabBarController建立XIB文件,在XIB上拉出相應的Tabbar。這時如果去建立導航,只需要在上一頁和下一頁之間建立相應的對應關系。而如何建立對應關系呢,請看下面的代碼: EDUThreeViewController *th = [[EDUThreeViewController alloc] initWithNibName:@"EDUThreeViewController" bundle:nil];     UINavigationController *n = [[UINavigationController alloc] initWithRootViewController:th]; [self presentViewController:n animated:YES completion:nil]; 但我現在了解到這種僅支持彈出下一級視圖。 第二種:也是先建立TabBarController的XIB,然後在TabBar上拖入NavigationController,(這裡可以根據自己的需要的拖入NavigationControlle或TabBarItem,拖入NavigationController的頁面就自動有NavigationBar了)。 如下圖: http://my.csdn.net/my/album/detail/1444381 就這樣,你就可以在相應的視圖中進行導航的設計了。但會在下一級視圖中出現TabBar,如果不需要可以通過代碼去除。所有代碼如下: EDUStuViewController *stuViewController = [[EDUStuViewController alloc] init];     stuViewController.hidesBottomBarWhenPushed = YES;//去掉TabBar [self.navigationController pushViewController:stuViewController animated:YES]; 第三種:前面說的都是在XIB視圖中的,這裡我們要說的是在代碼中實現的。這裡需要在delegate中進行TabBarController和NavigationController的結合。實例代碼如下: - (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions {     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];     //Override point for customization after application launch.     //TabBar上的第一個視圖 www.2cto.com  EDUaaViewController *aa = [[EDUaaViewController alloc] initWithNibName:@"EDUaaViewController" bundle:nil]; //把ViewController加入到NavigationController中 UINavigationController *aaNav = [[UINavigationController alloc] initWithRootViewController:aa]; //TabBar上的第二個視圖 EDUbbViewController *bb = [[EDUbbViewController alloc] initWithNibName:@"EDUbbViewController" bundle:nil]; //把ViewController加入到NavigationController中     UINavigationController *bbNav = [[UINavigationController alloc] initWithRootViewController:bb];     //把navigationController放入數組中     NSArray *controllerArray = [[NSArray alloc] initWithObjects:aaNav,bbNav,nil];     //建立TabBarController,需要在.h中先聲明     tabBarController = [[UITabBarController alloc] init];     tabBarController.delegate = self;     //把navigationController的數組加入到tabBarController中去     tabBarController.viewControllers = controllerArray;     tabBarController.selectedIndex = 0;     [(UITabBarItem *)[tabBarController.tabBar.items objectAtIndex:0] setTitle:@"體檢數據"];      [(UITabBarItem *)[tabBarController.tabBar.items objectAtIndex:1] setTitle:@"健康檔案"];     //UIViewController* activeController =tabBarController.selectedViewController;     [self.window addSubview:tabBarController.view];     self.window.backgroundColor = [UIColor whiteColor];     [self.window makeKeyAndVisible];     return YES; }
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved