在前兩篇博客中,討論了關於watch開發中框架與界面佈局相關,然而主要的邏輯,終究仍是要經過代碼來實現的,在咱們建立了項目以後,就會生成InterfaceController這個文件,它就是咱們storyBoard中的入口視圖控制器。框架
storyBoard中的控件咱們能夠經過拖拽的方式關聯到文件中,Action和Outlet兩種關聯方式基本能夠達到咱們修改控件和處理業務邏輯的需求。ide
WKInterfaceController相似於iOS中的ViewController,是watch中主要用於展現界面的controller,咱們的控件也都是基於這個容器中顯示。在模板中,系統爲咱們提供了三個函數,這三個函數體現了watch一個界面的聲明週期,以下:函數
//這個函數在初始化界面時會觸發,經過context能夠實現界面的傳值 override func awakeWithContext(context: AnyObject?) { super.awakeWithContext(context) } //這個函數在界面即將展示時觸發 相似於iOS中的ViewWillApear override func willActivate() { // This method is called when watch view controller is about to be visible to user super.willActivate() } //這個函數在界面消失後觸發,相似於iOS中的ViewDidDisAppear override func didDeactivate() { // This method is called when watch view controller is no longer visible super.didDeactivate() }
與iOS相似,watchOS的界面跳轉也有兩種方式:model和push。一樣,咱們也能夠經過storyBoard或者代碼來進行跳轉。佈局
咱們建立兩個InterfaceController,界面以下:spa
經過代碼跳轉,咱們須要給第二個controller設置一個id標識符:code
在按鈕觸發的方法中,以下跳轉:生命週期
@IBAction func `switch`(value: Bool) { //這裏的context是傳值的上下文 //在awakeWithContext方法中會將這個值取到 pushControllerWithName("InterfaceControllerTwo", context: "我是傳的值") }
咱們也能夠直接在storyBoard中設置界面的跳轉,按住control,拖拽按鈕到要跳轉的controller,會出現push和model菜單,選擇後,當咱們觸發按鈕方法時,就會跳轉:開發
經過這種方式進行的跳轉,在執行跳轉以前,會執行以下這個函數:博客
override func contextForSegueWithIdentifier(segueIdentifier: String) -> AnyObject? { return "我是值" }
這個設置的返回值就是context上下文傳遞的值。it
專一技術,熱愛生活,交流技術,也作朋友。
——琿少 QQ羣:203317592