最近苹果婊上市,水果也发布了Xcode 6.2正式版,WatchKit也可以正常使用了。水果很及时地提供了Apple Watch的开发文档,我也及时地尝试着边学习边开发Watch App。
今天主要想谈谈的是Watch App的页面导航模式,这一块内容与常规的iOS开发相差较大,值得探究。
页面类型
根据官方文档描述,Watch App只有两种页面形式,分别是Page Based和Hierarchical。这两种导航形式是不能直接共存的,但是可以通过Modal Page(模态页面)实现共存,下面会有演示。
Page Based页面与iOS常规开发中的分页布局相似,可以左右滑动切换页面,属于同级导航,适用于每个页面数据都不于其他页面有关联的情况,样式如下:
Hierarchical页面则是与常规iOS开发中的push导航基本一致,实现分级导航,适合更复杂的数据模型或者具有多层次数据的app,效果如下:
Modal Page可以实现Page Based页面与Hierarchical页面共存,本身与常规iOS开发中的模态导航形式基本一致,效果如下:
那么问题来了,如何实现他们呢?
- 设计器里实现
设计器中实现十分简单,和常规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的原则,带来了更多的要求,需要我们好好考虑下。