iOS:刪除storyBoard,純程式碼實現UITabBarController的視圖切換功能

來源:互聯網
上載者:User

標籤:

  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的視圖切換功能

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.