Apple Watch笔记-应用内导航模式

Changwei | 4/8/2015 7:03:00 PM


最近苹果婊上市,水果也发布了Xcode 6.2正式版,WatchKit也可以正常使用了。水果很及时地提供了Apple Watch的开发文档,我也及时地尝试着边学习边开发Watch App。

今天主要想谈谈的是Watch App的页面导航模式,这一块内容与常规的iOS开发相差较大,值得探究。

 

页面类型

 

 根据官方文档描述,Watch App只有两种页面形式,分别是Page BasedHierarchical。这两种导航形式是不能直接共存的,但是可以通过Modal Page(模态页面)实现共存,下面会有演示

 

Page Based页面与iOS常规开发中的分页布局相似,可以左右滑动切换页面,属于同级导航,适用于每个页面数据都不于其他页面有关联的情况,样式如下:

 

 

 

Hierarchical页面则是与常规iOS开发中的push导航基本一致,实现分级导航,适合更复杂的数据模型或者具有多层次数据的app,效果如下:

 

 

Modal Page可以实现Page Based页面与Hierarchical页面共存,本身与常规iOS开发中的模态导航形式基本一致,效果如下:

 

 

 

那么问题来了,如何实现他们呢?

 

  1. 设计器里实现

设计器中实现十分简单,和常规iOS开发一致,使用Control+鼠标拖拽的形式,实现效果如下:

 

 2.代码控制实现 

当然使用代码也可以实现push和model导航,push导航使用的方法主要为pushControllerWithName:context:, Modal导航使用方法为presentControllerWithNames:contexts: 及presentControllerWithName:context: 。

如下:

- (IBAction)modalToPage {
    //模态导航
    [self presentControllerWithName:@"DetailIC" context:nil];
    
}
- (IBAction)pushToPage {
    //push导航
    [self pushControllerWithName:@"DetailIC" context:nil];
}

 

总结:

 

Apple Watch中的导航形式变少了,需要我们好好规划应用的页面导航结构,同时不能使用代码运行时添加UI元素,且尽量不要允许运行long-running tasks的原则,带来了更多的要求,需要我们好好考虑下。

最后附上官方文档地址:https://developer.apple.com/library/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/ConfiguringYourXcodeProject.html#//apple_ref/doc/uid/TP40014969-CH2-SW1