[Xcode 實際操做]3、視圖控制器-(4)使用UINavigationController導航欄和工具欄

目錄:[Swift]Xcode實際操做html

本文將演示如何顯示和隱藏導航視圖的導航欄和工具欄ide

打開第一個視圖控制器工具

 1 import UIKit
 2 
 3 class FirstSubViewController: UIViewController {
 4 
 5     override func viewDidLoad() {
 6         super.viewDidLoad()
 7 
 8         // Do any additional setup after loading the view.
 9         self.title = "First Page"
10         self.view.backgroundColor = UIColor.brown
11         self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Next", style: UIBarButtonItem.Style.plain, target: self, action: #selector(FirstSubViewController.nextPage))
12         
13         let imgView = UIImageView(frame: CGRect(x: 0, y: 0, width: 40, height: 40))
14             imgView.image = UIImage(named: "PicRound")
15         let view = UIView(frame: CGRect(x: 0, y: 0, width: 40, height: 40))
16         view.backgroundColor = UIColor.purple
17         view.addSubview(imgView)
18         self.navigationItem.titleView = view
19     }
20     
21     @objc func nextPage()
22     {
23         let viewController = SecondSubViewController()
24         self.navigationController?.pushViewController(viewController, animated: true)
25     }
26 
27     //首先創建視圖控制器聲明週期中,視圖即將顯示的代理方法
28     //視圖在即將可見時,執行這個方法
29     override func viewWillAppear(_ animated: Bool) {
30         //先覆蓋父類的同名方法
31         super.viewWillAppear(animated)
32         //顯示導航視圖控制器的頂部工具欄
33         self.navigationController?.setToolbarHidden(false, animated: false)
34     }
35 
36     override func didReceiveMemoryWarning() {
37         super.didReceiveMemoryWarning()
38         // Dispose of any resources that can be recreated.
39     }
40 }

接着編輯第二個視圖控制器post

在第二個視圖控制器中添加兩個按鈕元素spa

 1 import UIKit
 2 
 3 class SecondSubViewController: UIViewController {
 4 
 5     override func viewDidLoad() {
 6         super.viewDidLoad()
 7 
 8         // Do any additional setup after loading the view.
 9         self.title = "Second Page"
10         self.view.backgroundColor = UIColor.purple
11         
12         //添加一個按鈕,當單擊這個按鈕時,會隱藏導航欄。
13         let btHideNavBar = UIButton(frame: CGRect(x: 40, y: 200, width: 240, height: 30))
14         //設置按鈕上的標題文字
15         btHideNavBar.setTitle("Hide navigation bar", for: UIControl.State())
16         //設置按鈕的背景顏色爲橙色
17         btHideNavBar.backgroundColor = UIColor.orange
18         //給當前按鈕綁定點擊事件
19         btHideNavBar.addTarget(self, action: #selector(SecondSubViewController.hideNavigatonBar), for: .touchUpInside)
20         //而後把按鈕,插入到當前視圖控制器的根視圖
21         self.view.addSubview(btHideNavBar)
22         
23         //使用一樣的方法,建立另外一個按鈕
24         //點擊這個按鈕,會隱藏底部的工具欄
25         let btHideToolBar = UIButton(frame: CGRect(x: 40, y: 260, width: 240, height: 30))
26         //設置按鈕上的標題文字
27         btHideToolBar.setTitle("Hide tool bar", for: UIControl.State())
28         //設置按鈕的背景顏色爲橙色
29         btHideToolBar.backgroundColor = UIColor.orange
30         //給當前按鈕綁定點擊事件
31         btHideToolBar.addTarget(self, action: #selector(SecondSubViewController.hideToolBar), for: .touchUpInside)
32         //而後把按鈕,插入到當前視圖控制器的根視圖
33         self.view.addSubview(btHideToolBar)
34     }
35     
36     //建立響應第一個按鈕點擊事件的方法
37     @objc func hideNavigatonBar()
38     {
39         //當用戶點擊第一個按鈕時,隱藏導航視圖控制器的頂部導航欄
40         self.navigationController?.setNavigationBarHidden(true, animated: true)
41     }
42 
43     //接着建立響應第二個按鈕的點擊事件方法
44     @objc func hideToolBar()
45     {
46         //當用戶點擊第二個按鈕時,隱藏導航視圖控制器的頂部工具欄
47         self.navigationController?.setToolbarHidden(true, animated: true)
48     }
49     
50     override func didReceiveMemoryWarning() {
51         super.didReceiveMemoryWarning()
52         // Dispose of any resources that can be recreated.
53     }
54 }
相關文章
相關標籤/搜索