對于我這個入門級小白來說研究了老半天才將oc的tabbar寫法翻譯成swift寫法·····廢話不多說現在開始。
我的思路是讓tabbarcontroller做四個navigationcontroller的容器。
首先把工程里的mainstoryboard里的頁面刪掉,拖一個tabbarcontroller控件進來,并在右側屬性欄將該控件選擇為初始頁面(以initial·········為開頭的選項)
然后建立第一個頁面的storyboard,并將里面的navigationcontroller(沒有的話就拖一個進來)設置成初始頁面(和tabbarcontroller設置一樣)并再拖一個tabbaritem(tabbar的按鈕)到該navigationcontroller下。后面的個頁面也是如此照做。代碼都在appdelegate里寫的。下面是代碼
oc代碼(四個頁面):
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
UITabBarController *tab =[[UIStoryboard storyboardWithName:@"Main"
bundle:nil]instantiateInitialViewController];
UINavigationController * first = [[UIStoryboard storyboardWithName:@"First" bundle:nil]
instantiateInitialViewController];
UINavigationController * second = [[UIStoryboard storyboardWithName:@"Second" bundle:nil]
instantiateInitialViewController];
UINavigationController * third = [[UIStoryboard storyboardWithName:@"Third" bundle:nil]
instantiateInitialViewController];
UINavigationController * fouth = [[UIStoryboard storyboardWithName:@"Fouth" bundle:nil]
instantiateInitialViewController];
tab.viewControllers = @[first,second,third,fouth];
self.window.rootViewController = tab;
}
swift代碼(這個是五個頁面的):
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
// MARK: - Action
let tab:(UITabBarController) = UIStoryboard.init(name: "Main", bundle: nil).instantiateInitialViewController()as!UITabBarController
let first:(UINavigationController) = UIStoryboard.init(name: "First", bundle: nil).instantiateInitialViewController()as!UINavigationController
let second:(UINavigationController) = UIStoryboard.init(name: "Second", bundle: nil).instantiateInitialViewController()as!UINavigationController
let third:(UINavigationController) = UIStoryboard.init(name: "Third", bundle: nil).instantiateInitialViewController()as!UINavigationController
let fourth:(UINavigationController) = UIStoryboard.init(name: "Fourth", bundle: nil).instantiateInitialViewController()as!UINavigationController
let fifth:(UINavigationController) = UIStoryboard.init(name: "Fifth", bundle: nil).instantiateInitialViewController()as!UINavigationController
tab.viewControllers = [first,second,third,fourth,fifth]
self.window?.rootViewController = tab
return true
}
結束語:
本人編程剛上路的級別·····由于工作需要所以要學會swift,現在兩門語言同時啃·····如果哪里寫的不好望大神們賜教。小編我在這謝謝了!我非常想快速進步學習