watchOS系统开发 - Navigation导航(4)

WatchOS中的导航非常有限, 不像在iOS中, 你甚至可以自定义导航系统, 在使用导航之前, 先熟悉下在WatchOS中的几种导航方式.
有三种导航方式
• Hierarchical:类似于UINavigationController.
• Page-based:类似于UIPageViewController.
• Modal: 类似于模态

Hierarchical navigation

分层导航将是iOS开发人员最熟悉的概念之一。在UIKit中,UINavigationController管理push和pop子控制器及其动画。
WatchKit有一个非常相似的系统:
•您可以将WKInterfaceController的实例push导航堆栈。
•内置滑动手势和后退按钮。
•您可以使用故事板设置导航,也可以在代码中执行。
WatchKit不是拥有主导航控制器,而是为您处理所有导航。您可以简单地从按钮控制拖动到控制器,或者直接在代码中调用self.pushController(withName: <#T##String#>, context: <#T##Any?#>)
使用分层导航系统时,WatchKit为您提供可选的上下文参数,您可以在导航时在控制器之间传递。
控制器之间的通信一直是困难的。在WatchKit中使用上下文传递将使您的应用程序的架构保持干净。

代码设置导航, 传参

open func pushController(withName name: String, context: Any?)

name参数为要显示的接口控制器的名称。 在您的故事板中,接口控制器的名称存储在对象的Identifier属性中,该属性位于属性检查器中。
context参数为要传递的参数

storyboard设置
push操作和iOS一样, 直接拉线就可以了. 关于传参则使用

    override func contextForSegue(withIdentifier segueIdentifier: String) -> Any? {
        return ["key":"value"]
    }

只需要在这个方法中返回你要传递的参数就可以了

接受参数

context保存的就是参数, 是一个可选值, 使用时一定要进行可选绑定

    override func awake(withContext context: Any?) {
        super.awake(withContext: context)        
    }
Jietu20170802-102325-HD.gif

Modal navigation

使用方法和iOS 中的模态一样


Jietu20170802-102238-HD.gif

Page-based navigation

这个方式目前我还没搞懂

你可能感兴趣的:(watchOS系统开发 - Navigation导航(4))