Apple Watch笔记-应用内导航模式
最近苹果婊上市,水果也发布了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的原则,带来了更多的要求,需要我们好好考虑下。
Apple Watch笔记-应用内导航模式的更多相关文章
- Win10 UWP 开发系列:使用SplitView实现汉堡菜单及页面内导航
在Win10之前,WP平台的App主要有枢轴和全景两种导航模式,我个人更喜欢Pivot即枢轴模式,可以左右切换,非常方便.全景视图因为对设计要求比较高,自己总是做不出好的效果.对于一般的新闻阅读类Ap ...
- bootstrap学习笔记之基础导航条 http://www.imooc.com/code/3111
基础导航条 在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多.我们先来看导航条中最基础的一个--基础导航条. 使用方法: 在制作一个基础导航条时,主要分 ...
- WP8.1学习系列(第四章)——交互UX之导航模式
交互模式和指南 这部分包括三部分内容,分别是导航模式.命令模式和输入模式. 导航模式 虽然 Windows 导航模式提供了框架,但它提倡创新.激发你的创造力并在已建立的模式上构建. 命令模式 使用应用 ...
- Hive的三种安装方式(内嵌模式,本地模式远程模式)
一.安装模式介绍: Hive官网上介绍了Hive的3种安装方式,分别对应不同的应用场景. 1.内嵌模式(元数据保村在内嵌的derby种,允许一个会话链接,尝试多个会话链接时会报错) ...
- Windows Store App JavaScript 开发:页内导航
页内导航是在一个页面内根据需要加载其他页面的内容,在开发基于JavaScript的Windows应用商店应用时,可以使用WinJS.Navigation.navigate函数传递要加载的页面地址并使用 ...
- [Flex] ButtonBar系列——arrowKeysWrapFocus属性如果为 true,则使用箭头键在组件内导航时,如果击中某一端则将折回。
<?xml version="1.0" encoding="utf-8"?> <!--arrowKeysWrapFocus 如果为 true, ...
- x264 亮度信号8x8帧内预测模式
1 该模式的8个预测方向与4x4帧内预测模式一样. 2 该模式只有High profile及更高的Profile的才有可能使用,Baseline.Main Profile.Preset为ultrafa ...
- bootstrap学习笔记之为导航条添加标题、二级菜单及状态 http://www.imooc.com/code/3120
为导航条添加标题.二级菜单及状态 加入导航条标题 在Web页面制作中,常常在菜单前面都会有一个标题(文字字号比其它文字稍大一些),其实在Bootstrap框架也为大家做了这方面考虑,其通过" ...
- 《Essential C++》读书笔记 之 目录导航
<Essential C++>读书笔记 之 目录导航 2014-07-06 第一章:<Essential C++>读书笔记 之 C++编程基础 第二章:<Essentia ...
随机推荐
- C源文件和头文件 模版
头文件: /********************************************************************************************** ...
- Windbg驱动双机调试环境配置
[由于进入了Windows驱动编程领域第一步就是搭建环境,整个环境来说说难也不难,只是比较麻烦.文章有些地方比较繁琐的,而且别人写的比较好,作为引用参考直接贴连接了.如果你按照我写的一步步完成,很快就 ...
- Python开发【第五篇】:模块
递归的案例:阶乘 1*2*3*4*5*6*7- def func(num): if num == 1: return 1 return num * func(num - ...
- 搭建React项目(一):在网页中使用
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 498. Diagonal Traverse对角线z型traverse
[抄题]: Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in dia ...
- 725. Split Linked List in Parts把链表分成长度不超过1的若干部分
[抄题]: Given a (singly) linked list with head node root, write a function to split the linked list in ...
- Java高级
1.GC是什么?为什么要有GC? GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供 ...
- maven插件后报错:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project
在给eclipse换了高版本的maven插件后,引入jar包报如下的错误: org.apache.maven.archiver.MavenArchiver.getManifest(org.apache ...
- CSS深入理解之z-index
(http://www.imooc.com/learn/643) 一.z-index基础知识 1.z-index的含义 z-index属性指定了元素及其子元素的[z顺序],而[z顺序]可以决定当元 ...
- Eclipse 中打开 python 交互窗口