日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UITabBarController的基本原理及使用(一)

發布時間:2023/12/6 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UITabBarController的基本原理及使用(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

UITabBarController在iOS開發中是一個高頻使用的控制器,典型的案例如QQ、微信均使用UITabBarController布局。本文將從一個新建工程,和大家一起了解UITabBarController的基本原理和使用方法。


基本概念

UITabBarController能夠方便地管理多個控制器,并且在多個控制器之間切換。看個示例

微信主界面有4個子控制器,分別是微信,通訊錄,發現和我,點擊不同的圖標,會展示不同的頁面(也就是子控制器的view)。這是一個典型的UITabBarController應用案例。


項目實踐

我們通過新建項目來熟悉UITabBarController,實踐出真知。
實驗環境:Xcode 9.4.1
編程語言:Objective-C
我們主要理解原理,用swift也是可以的,本例使用OC。

選擇Single View App(單視圖app),點Next。

Product Name:是項目的名稱,可自定義。
Organization Name:組織名,可自定義
Organization Identifier:組織標識符,最好和單位域名保持一致,可自定義。
其它默認,點Next,一個嶄新的項目就創建好了。

這個case我們可能要做幾遍,第一遍我們用純代碼來實現。

選中info.plist,把Main storyboard file base name對應值(value)刪掉。這樣做的目的是讓程序在運行時,不從Main.storyboard里面加載控制器,而是通過代碼加載。

仔細看圖中的注釋。我再解釋一下啟動流程。

  • 程序啟動先的main.m入口函數;
  • 接著查看info.plist里面的main值(被我們清空了value),結果為空,即不加載Main.storyboard.
  • 調用appDelegate的didFinishLaunchingWithOptions方法。
    來到didFinish...方法后,我們需要手工創建window、UItabBarController,并將window設置為可見狀態。
    做完以上幾步,我們先運行一下程序。

    我們看到導航欄已經正常顯示,證明加載成功,為什么主窗口是黑色,因為還沒添加子控制器。
  • 我們給tabbar添加第一個控制器。

    注意勾選Also create XIB file,讓系統創建一個同名的xib文件(可圖形化部署控件)。

    會生成三個文件。點擊.xib文件,把view設置成紅色(為了醒目)。

    設置好后,返回AppDelegate.m文件。

    引用剛才創建的FirstViewController,然后創建一個FirstViewController對象,并通過tabbar的addChildViewController方法將控制器設為tabbar的子控制器 。運行一下程序。

    我們發現祖國山河一片紅,證明子控制器成功加載。
    依葫蘆畫瓢,再創建個UIViewController控制器,顏色設置為藍色(大家隨意,深色就好,方便觀察效果)。在AppDelegate.m里面,依照添加第一個控制器,再把第二個控制器加載到tabar里面。

    Question 1:此時運行程序,tabbar會加載哪一個ViewController?

    答:我們說過tabbar可以管理多個控制器,其實是把這些控制器加載到一個數組里面來管理,先加載的下標是0,第2個加載下載是1,以此類推。
    而tabbar默認顯示第一個添加的子控制器,也就是firstVC。所以還是加載的紅色。

    如果你想手動選擇加載的控制器,可以使用selectedIndex屬性。在本例中可以這樣做:

    tabBarViewController.selectedIndex = 1;

    //本例中目前加載了2個子控制器,他們的下標分別是0,1.

    再運行一 下程序,你指定的子控制器應該已經加載成功了。

    (未完待續)
    歡迎關注的我的公眾號:Ted的技術樂園

    轉載于:https://blog.51cto.com/1038433/2169911

    總結

    以上是生活随笔為你收集整理的UITabBarController的基本原理及使用(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。