1. 程式人生 > >(八)swift 中UINavigationController 中的一些操作

(八)swift 中UINavigationController 中的一些操作

1、 推拽使用UINavigationController

XCode 自動生成兩個UI介面。
這裡寫圖片描述

NativeController:繼承自UINavigationController,後臺swift 實現類需繼承。示例程式碼如下:

import UIKit
class HomeNavigationController : UINavigationController {

override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}

TableView(Prototype Content):繼承自UITableViewController,後臺swift 實現類需要繼承。示例程式碼如下:

import UIKit
class HomeTableViewController : UITableViewController {

override func viewDidLoad() {
    super.viewDidLoad()
           print("HomeTableViewController");            

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    }

}

2、 關聯檢視和後臺

選擇 Home Navigation Controller 檢視
這裡寫圖片描述

右側切換到身份識別,Class 處填入 HomeNavigationController
這裡寫圖片描述

按照HomeNavigationController 的方法,填入TableView

3、 改變UINavigationController的背景

方法1:通過介面方式

調整選項卡至 Attributes inspector (屬性識別器)
這裡寫圖片描述

Bar Tint屬性: 選擇顏色
這裡寫圖片描述
這裡寫圖片描述

方法2:後臺程式碼
HomeNavigationController -> ViewDidLoad() {

super.viewDidLoad()

// 改變 navigationBar 顏色
self.navigationBar.barTintColor = UIColor.blackColor()
}

方法3:後臺程式碼,變數方式
按住 control拖拽 Main.storyboard (雙擊開啟) 內的“Home Navigation Controoler” 內的 Home Navigation Bar ,至 HomoNavigationController.swift(單擊開啟) ,在彈出視窗的Name 處填入 homeNavigationBar
Swift程式碼自動生成變數 @IBOutlet weak var homeNavigationBar: UINavigationBar! (此程式碼可自動生成)

這裡寫圖片描述
這裡寫圖片描述

調整後執行,結果如下: 這裡寫圖片描述

4、 改變Title(文字和圖片)

方式1:無程式碼
選擇檢視中“Table View” 下的 UINavigationItem,並在右側切換到“Attributes inspector” (屬性識別器),
在Title 中填入“Title”。
這裡寫圖片描述

方式2:通過程式碼
在 HomeTableViewController 的 viewDidLoad 函式內 加入

super.viewDidLoad()
print(“HomeTableViewController”)
// 改變標題
self.navigationItem.title = “helloTitle”

方法3:通過程式碼,使用label(此方式能實現僅顯示文字)
在HomeTableViewConroller 內新增一個方法

// title上僅含有文字
func showTitle(){

let rect = CGRect(x: 0, y: 0, width: 100, height: 30)
let label = UILabel(frame: rect)
label.text = “OA辦公”
label.textColor = UIColor.whiteColor()
self.navigationItem.titleView = label
}
在 viewDidLoad 內呼叫 showTitle();

方法1、2、3修改Title 後執行結果如下:
這裡寫圖片描述

方法4:通過程式碼,圖片加文字共同顯示
在HomeTableViewConroller 內新增一個方法

// title上含有圖片和文字
func showTitleImage(){

    let rect = CGRectMake(0,  0, 160, 30)
    let ImageView = UIImageView(frame: rect)

    let button = UIButton(type: .Custom)
    button.frame = CGRectMake(0, 0, 160, 30)
    button.setTitle("OA辦公", forState:UIControlState.Normal)
    button.setImage(UIImage(named: "home-logo"), forState: .Normal)

    ImageView.addSubview(button)
    self.navigationItem.titleView = ImageView

}

在 viewDidLoad 內呼叫 showTitleImage();
呼叫執行結果如下:
這裡寫圖片描述