AppleWatch開發入門三——代碼交互與控制器生命週期

AppleWatch開發入門三——代碼交互與控制器生命週期

1、引言

        在前兩篇博客中,討論了關於watch開發中框架與界面佈局相關,然而主要的邏輯,終究仍是要經過代碼來實現的,在咱們建立了項目以後,就會生成InterfaceController這個文件,它就是咱們storyBoard中的入口視圖控制器。框架

2、代碼交互與控制器聲明週期

        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()
    }

3、watch中的界面跳轉與傳值

        與iOS相似,watchOS的界面跳轉也有兩種方式:model和push。一樣,咱們也能夠經過storyBoard或者代碼來進行跳轉。佈局

一、經過代碼跳轉與傳值

        咱們建立兩個InterfaceController,界面以下:spa

經過代碼跳轉,咱們須要給第二個controller設置一個id標識符:code

在按鈕觸發的方法中,以下跳轉:生命週期

 @IBAction func `switch`(value: Bool) {
         //這裏的context是傳值的上下文
         //在awakeWithContext方法中會將這個值取到
        pushControllerWithName("InterfaceControllerTwo", context: "我是傳的值")
    }

二、在storyBoard中設置跳轉關係

        咱們也能夠直接在storyBoard中設置界面的跳轉,按住control,拖拽按鈕到要跳轉的controller,會出現push和model菜單,選擇後,當咱們觸發按鈕方法時,就會跳轉:開發

經過這種方式進行的跳轉,在執行跳轉以前,會執行以下這個函數:博客

override func contextForSegueWithIdentifier(segueIdentifier: String) -> AnyObject? {
        return "我是值"
    }

這個設置的返回值就是context上下文傳遞的值。it

專一技術,熱愛生活,交流技術,也作朋友。

——琿少 QQ羣:203317592

相關文章
相關標籤/搜索