Swift3.0-學習之路之導航控制器
根控制器
//1.建立UIWindow物件
self.window = UIWindow.init(frame: UIScreen.main.bounds)
//2.設定根檢視控制器
let rootViewController = MainViewController()
self.window?.rootViewController = rootViewController
//3.設定背景顏色
self.window?.backgroundColor = UIColor.red
self.window?.makeKeyAndVisible()
建立一個main控制器,繼承自UITabBarController
class MainViewController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
let home = HomeViewController()
home.title = "首頁"
let homeVC = UINavigationController.init(rootViewController: home)
let shop = ShopCatViewController()
shop.title = "購物車"
let shopVC = UINavigationController.init(rootViewController: shop)
shop.tabBarItem.badgeValue = "99"
let mine = MineViewController()
mine.title = "個人中心"
let mineVC = UINavigationController.init(rootViewController: mine)
self.viewControllers = [homeVC, shopVC, mineVC]
}
}
首頁設定
class HomeViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.title = "首頁"
//設定導航欄背景顏色
self.navigationController?.navigationBar.barTintColor = UIColor.green
self.view.backgroundColor = UIColor.red
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.navigationController?.pushViewController(PushViewController(), animated: true)
// 跳轉
// self.navigationController?.present(PushViewController(), animated: true, completion: {
//
// })
}
}
效果圖:
檢視控制器的生命週期
//MARK: - 生命週期
//注意:重寫生命週期相關的方法的時候必須通過super去呼叫父類的相關方法
//1.開始建立檢視控制器的view的屬性的時候會自動呼叫(建立一個檢視控制器只會呼叫一次)
override func loadView() {
super.loadView()
print("建立view")
}
//2.每次view將要出現的時候會呼叫(可能會被呼叫多次)
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("view將要出現")
}
//3.每次view已經出現的時候會呼叫(可能會被呼叫多次)
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("view已經出現")
}
//4.view屬性已經載入完成之後會自動呼叫(建立一個檢視控制器只會呼叫一次)
//一般在這個方法中去搭建當前檢視控制器對應的介面
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
print("view載入完成")
}
//5.每次view將要消失的時候會呼叫(可能會被呼叫多次)
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
print("view將要消失")
}
//6.每次view已經消失的時候會呼叫(可能會被呼叫多次)
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
print("view已經消失")
}
//接收到記憶體警告的時候自動呼叫
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
到這裡,建立控制器的簡單使用就介紹完了。
程式碼:https://github.com/Baiyongyu/Swift-RootController.git
相關文章
- 《iOS之導航控制器的使用圖解》iOS圖解
- vue元件之路之menu導航選單Vue元件
- bootstrap導航欄學習boot
- golang學習之路 之mapGolang
- Flutter開發之路由與導航Flutter路由
- flutter小記之路由和導航Flutter路由
- Swoft 學習筆記之控制器筆記
- ARM學習之Nand FLash控制器NaN
- 微控制器小白學習之路(十二)---直流電機的控制
- 微控制器小白學習之路(四)---led燈的閃爍
- 程式設計師學習、招聘網站導航程式設計師網站
- Halcon 學習筆記(4):導航首頁筆記
- 【iOS開發-21】UINavigationController導航控制器初始化,導航控制器棧的push和pop跳轉理解...iOSUINavigationController
- 大資料學習之路——java物件導向(二)大資料Java物件
- Symfony2 學習筆記之控制器筆記
- 從入門到精通,Java學習路線導航Java
- Node.js 中文學習資料和教程導航Node.js
- Android 十年之路: 主屏與導航Android
- golang 學習之路之 struct 結構體GolangStruct結構體
- Backbine.js實戰第七章----導航控制器JS
- Python學習之路——類-物件導向程式設計Python物件程式設計
- jmeter學習指南之16個邏輯控制器JMeter
- flutter 自定義tab導航-頂部導航-底部導航Flutter
- 導航控制器裡邊新增UIScrollView (automaticallyAdjustsScrollViewInsets)UIView
- 大神之路-起始篇 | 第3章.電腦科學導論之【資料儲存】學習筆記筆記
- 大神之路-起始篇 | 第1章.電腦科學導論之【基礎緒論】學習筆記筆記
- Java零基礎學習之路(八)Java物件導向Java物件
- Element-ui之導航選單UI
- web元件之導航條(Bootstrap navbar)Web元件boot
- Jetpack Compose學習(11)——Navigation頁面導航的使用JetpackNavigation
- java學習之路Java
- 學習java之路Java
- php學習之路PHP
- EBS學習之路
- java學習——物件導向之繼承Java物件繼承
- golang學習之路之函式可變引數Golang函式
- 一篇搞定導航守衛(vue-router原始碼學習)Vue原始碼
- Blazor和Vue對比學習(進階.路由導航一):基本使用BlazorVue路由