storyboard进阶教程 搭建完整APP
来源:互联网 发布:刘统勋 知乎 编辑:程序博客网 时间:2024/06/05 22:30
相关例程:http://download.csdn.net/detail/q562679764/9272385
上一次我们讲解了如何使用storyboard,这次说一下如何利用storyboard搭建一个完整的APP
目标结构:
登陆界面:使用navigation跳转到注册界面或用户界面
注册界面:返回登陆界面
用户界面:包含两个界面 A和B AB使用tabbar跳转
界面A:使用navigation跳转到A1和A2
界面B:无操作
界面A1:返回登陆界面
界面A2:无操作
下面是效果图
首先 创建一个storyboard工程
因为登陆界面是使用navigation进行下一级的跳转的 所以我们要把根视图设为navigationController
切换到storyboard界面 使用delete键删除 拖拽一个navigationController 到视窗中,注意 是navigationController图标是黄色的然后把navigation自带的一个tableViewcontroller删除 只留下一个navigation
将is initial View controller选中 左边就会有一个箭头指向navigationController了 添加一个ViewController 到视图上 并将它设置成navigation的rootViewController
设置完成后 viewController上面会自动添加一个navigation Item 选中 它 将title设置成登陆 这样就完成登陆界面的创建了
再创建一个viewController 然后选中登陆界面 右键上方的黄色按钮 然后拖拽到新创建的ViewController上面 在弹出的选择框中选择push 然后再添加一个tab Bar Controller ;
tab Bar Controller 自带两个ViewController 选中登陆界面 使用push方式连接到tab Bar Controller 完成后的效果是这样的
现在虽然我们已经连线好了 但是还无法跳转,因为我们是通过controller的黄色按钮连接的,这样的连接方式不同于直接在按钮上连接,使用这样的连接方式,只是指定了视图间的跳转方式 至于何时跳转 我们需要在代码中定义
在登陆视图中添加两个button登陆和注册 并将登陆视图和入口类ViewController关联起来 连线button的方法到ViewController
接着 为登陆视图的两个segue设置标识符 一个设置成denglu 一个设置成zhuce
这个将作为我们跳转到那个视图的依据
切换到viewController的.M文件中 在button的方法中写入跳转代码
- (IBAction)zhuCe:(id)sender { //通过segue的identifer来进行跳转 第一个参数要填上对应segue的identifier 如果错误将会崩溃 [self performSegueWithIdentifier:@"zhuce" sender:nil];}- (IBAction)dengLu:(id)sender { [self performSegueWithIdentifier:@"denglu" sender:nil];}
这样就可以实现登陆界面跳转到注册和tabbarController了
由于注册是通过push跳转的自带返回按钮 所以不需要写返回方式了
下面是效果图
可以看到 我们只写了登陆界面的跳转 tabbarController的跳转我们并没有写代码 ,系统就自动为我们实现了
严格意义来说 我们只用了两行代码 就基本将这个工程的视图架构完成了,现在我们进行最后的一些步骤,为B增加一个二级视图 并使用navigation方式跳转 还要让B的二级视图能够返回登陆界面
首先 我们选中视图B
选择为B视图控制器增加一个navigation 接着 在B中添加一个Button 再拖拽一个新的ViewController 作为B的二级视图 在Itme中添加一个button 右键button 然后拖拽到二级视图上面 选择push 这样不需要写代码 点击按钮就可以直接跳转了 缺点是无法进行跳转前的判断
接着 我们为二级视图设置一个返回登陆界面的button, 将这个button使用modal连线到第一个navigationController .
这样 就完成了 下面是完成样板和效果图
下面是效果图:
关键点:
1.为什么根视图是navigationController?
和使用代码构造相同 如果视图想使用push方式跳转 必须有一个navigationController的实例 这样将main页面设置成navigationController的rootViewController之后 Main就可以使用push方式跳转到注册和登陆界面了,相当于写入了下面的代码
UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:mainViewController];
2.什么时候直接使用按钮与视图连线 什么时候使用视图与视图连线?
如果不需要在跳转页面之前进行操作,可以直接使用按钮与视图连线,如果需要进行一些操作之后再跳转或者直接取消跳转 则使用视图与视图连线,并设置连线的identifier,在按钮的事件方法中写入跳转方法:
- (IBAction)zhuCe:(id)sender {- //这里可以写入一些跳转前的操作 if (跳转条件){ [self performSegueWithIdentifier:@"identifier" sender:nil]; }}
3.最后从B1跳转到main页面的时候为什么选择modal?
这是测试过的结果,使用其他方式跳转要么携带navigationBar要么携带tabbar,这样就违背了我们返回主界面的要求,看下使用show的效果:
4.为什么连线的时候跳转方式选项很少? 如图中1的样子 而不是图2的样子?
这是因为关闭了auto layout的选项 打开就可以了
PS: 使用storyboard确实方便了很多 但是缺点也很多,一个看似无害的设置可能就会造成想象不到的奇怪效果,对于出现问题后的调试造成很大的阻碍,因为你很难找到问题的关键,尤其是代码写完之后,你不但需要排查代码还要去梳理storyboard中的关系
- storyboard进阶教程 搭建完整APP
- Storyboard/Xib 进阶教程
- Swift教程_零基础学习Swift完整实例(四)_swift完整实例(搭建程序结构、构建storyboard)
- SSH 环境搭建完整教程
- SSH 环境搭建完整教程
- 搭建个人博客完整教程
- Storyboard搭建最基本的iOS app骨架
- codeblocks搭建opencv完整教程(一)
- VPS CentOS 7搭建ss完整教程
- CentOS7搭建LAMPR环境完整教程
- ios7 Storyboard教程1
- ios7 Storyboard教程2
- ios7 Storyboard教程3
- iOS 开发 storyboard 教程
- storyboard使用教程
- Storyboard 教程(上)
- 细致完整的Android开发环境搭建教程
- Linux 下搭建 php 开发环境完整教程
- 理解输入输出流
- mysql保障数据一致性:锁与解(一)
- NOIP2008普及组
- 全排列的递归与非递归
- krpanotools基本操作
- storyboard进阶教程 搭建完整APP
- CSS背景图拉伸自适应尺寸,全浏览器兼容
- 多项式求和
- ios 文件操作
- Native-Activity
- 关于Xcode 插件
- 关于mpls和ns3
- windows下安装pip
- Date类型数据转化json后,在jsp获取日期显示为[object Object]问题