標籤:
storyboard是一個很強大的編寫代碼的協助工具輔助,可以協助布局多個視圖之間的聯絡,既直觀又能減少代碼量;但是,作為一個程式員,在不使用storyboard的情況下,純程式碼編寫是必須的技能。
下面就用純程式碼實現純程式碼實現UITabBarController的視圖切換功能,咱就實現三個視圖之間的轉換吧,代碼不多,容易看的明白。
步驟:
1、刪除storyboard故事板和UIViewController
2、建立三個控制器類,均繼承自UIViewController,分別為FirstViewController、SecondViewController、ThreeViewController
3、為了便於區分跳轉的視圖,分別在上面的三個控制器類中設定它們各自視圖的顏色。
4、在AppDelegate應用程式代理程式類中進行這三個控制器的建立、UITabBarController的建立、window的建立。最後進行代碼的整合即可。
檔案如下:
示範結果如下:
代碼如下:
在FirstViewController類中只設定視圖顏色:
1 - (void)viewDidLoad {2 [super viewDidLoad];3 // 設定視圖顏色4 self.view.backgroundColor = [UIColor redColor];5 }
在SecondViewController類中只設定視圖顏色
1 - (void)viewDidLoad {2 [super viewDidLoad];3 // 設定視圖顏色4 self.view.backgroundColor = [UIColor greenColor];5 }
在ThreeViewController類中只設定視圖顏色
1 - (void)viewDidLoad {2 [super viewDidLoad];3 // 設定視圖顏色4 self.view.backgroundColor = [UIColor purpleColor];5 }
在AppDelegate應用程式代理程式類中,代碼才是重點,如下:
1 #import "AppDelegate.h" 2 #import "FirstViewController.h" 3 #import "SecondViewController.h" 4 #import "ThreeViewController.h" 5 6 @interface AppDelegate () 7 8 @end 9 10 @implementation AppDelegate11 12 13 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {14 // 建立window並設定大小15 self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];16 17 //建立UITabBarController18 UITabBarController *tabBarController = [[UITabBarController alloc]init];19 20 //建立三個控制器,並且加入tabBarController中21 FirstViewController *firstVC = [[FirstViewController alloc]init];22 //設定標籤欄標題23 firstVC.tabBarItem.title = @"first";24 //設定系統內建的表徵圖25 firstVC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:0];26 //設定badgeValue27 firstVC.tabBarItem.badgeValue = @"10";28 29 SecondViewController *secondVC = [[SecondViewController alloc]init];30 secondVC.tabBarItem.title = @"second";31 //設定系統內建的表徵圖32 secondVC.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:1];33 //設定badgeValue34 secondVC.tabBarItem.badgeValue = @"5";35 36 37 ThreeViewController *threeVc = [[ThreeViewController alloc]init];38 threeVc.tabBarItem.title = @"three";39 //設定系統內建的表徵圖40 threeVc.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:2];41 42 //[tabBarController addChildViewController:firstVC];43 //[tabBarController addChildViewController:secondVC];44 //[tabBarController addChildViewController:threeVC];45 tabBarController.viewControllers = @[firstVC,secondVC,threeVc];46 47 //將tabBarcontroller設定為根控制器48 self.window.rootViewController = tabBarController;49 50 //window接受使用者響應並顯示51 [self.window makeKeyAndVisible];52 53 return YES;54 }
iOS:刪除storyBoard,純程式碼實現UITabBarController的視圖切換功能