1210笔记//关于导航实例-QQ空间//导航实例-storyboard实现//控制器的生命周期//控制器的生命周期方法
一、利用storyboard完成导航
1.storyboard中用来跳转的每一根线 都是 一个 UIStoryboardSegue对象
1> 自动跳转 (从 某个按钮 拖线到 下一个目的控制器)
2> 手动跳转 (从 来源控制器 拖线到 下一个目的控制器)
* 一定要给segue绑定一个唯一的identifier
* 如何跳转?通过来源控制器的一个方法来执行这个UIStoryboardSegue对象
[self performSegueWithIdentifier:@"login2home" sender:nil];
2.UIStoryboardSegue对象
// 唯一标识
@property (nonatomic, readonly) NSString *identifier;
// 来源控制器
@property (nonatomic, readonly) id sourceViewController;
// 目的控制器
@property (nonatomic, readonly) id destinationViewController;
3.通过UIStoryboardSegue对象完成的跳转过程
1> 初始化(创建)UIStoryboardSegue对象
2> 设置UIStoryboardSegue对象的identifier标识 和 sourceViewController来源控制器
3> 创建目的控制器,并且设置为UIStoryboardSegue对象的destinationViewController属性
4> 在跳转之前,会调用一次sourceViewController的下面方法
// 后面的sender参数就是当初调用performSegueWithIdentifier:sender:方法传入的参数
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
5> 执行UIStoryboardSegue对象
[segue perform];
6> 会将destinationViewController目的控制器压入栈中
二、显示本地网页
// 1.获得about.html文件的URL
NSURL *url = [[NSBundle mainBundle] URLForResource:@"about.html" withExtension:nil];
// 2.封装一个请求对象
NSURLRequest *request = [NSURLRequest requestWithURL:url];
// 3.加载请求
[webView loadRequest:request];
三、内存警告的处理过程
1.当控制器接收到内存警告时,会调用 didReceiveMemoryWarning 方法
2.didReceiveMemoryWarning方法内部的默认实现
1> 首先会检测控制器的view在不在屏幕上
if (self.view.superview == nil) { // 检测控制器的view在不在屏幕上
// 就会尝试销毁控制器的view
// 即将销毁的时候,就会调用控制器的 viewWillUnload
// 销毁完毕的时候,就会调用控制器的 viewDidUnload方法
} else {
// 不销毁控制器的view
}
3.当需要再次使用控制器的view时,又会调用loadView方法来创建view
4.接着会调用一系列的生命周期方法
viewDidLoad ---> ......
5.生命周期循环
loadView --> viewDidLoad --> ..可见.. --内存警告--> didReceiveMemoryWarning ---> viewWillUnload --> viewDidUnload ---再次使用---> loadView
四、UITabBarController
1.以选项卡的形式展示多个子控制器
2.设置需要显示的子控制器
1> 设置子控制器数组
NSArray *viewControllers;
2> 逐个添加子控制器
// 通过这个方法添加的子控制器会自动添加到viewControllers数组中
- (void)addChildViewController:(UIViewController *)childController;
3.设置子控制器对应标签的文字和图片
* 通过子控制器的tabBarItem属性设置
vc.tabBarItem.title = @"最近"; // 设置标题
vc.tabBarItem.image = [UIImage imageNamed:@"tab_recent_press.png"]; // 设置图标
1210笔记//关于导航实例-QQ空间//导航实例-storyboard实现//控制器的生命周期//控制器的生命周期方法的更多相关文章
- 01-导航实例-QQ空间Demo示例程序源代码
01-导航实例-QQ空间.zip62.4 KB // MJLoginViewController.h Map // // MJLoginViewController.h // 01-导航实例-QQ ...
- 拒绝QQ空间-手把手教你美化博客
为什么要美化? 博客园的主题看起来是有一些年代感了,应该是不符合当代大学生的审美了,起码我就觉得不行,所以我们要进行一些美化,但是搞技术的人的博客不应该搞得花里胡哨,最好是简洁一些(个人想法),网上有 ...
- 参数化登录QQ空间实例
通过参数化的方式,登录QQ空间 实例源码: # coding:utf-8 from selenium import webdriver import unittest import time clas ...
- Bootstrap历练实例:激活导航状态
激活导航状态 您可以在激活状态的胶囊式导航和列表导航中放置徽章.通过使用 <span class="badge"> 来激活链接,如下面的实例所示: <!DOCTY ...
- WPF MvvmLight简单实例(1) 页面导航
原文:WPF MvvmLight简单实例(1) 页面导航 实现了那些功能,先看看截图: 操作描述: 在程序运行后,点击“Load”按钮,页面会加载PageOne,点击PageOne页面中的“Next” ...
- 【web前端优化之图片模糊到清晰】看我QQ空间如何显示相片
前言 此篇文章估计不会太长,有移除首页的风险,但是老夫(称老夫是因为我们真正的叶小钗其实都100多岁啦)是不会怕滴.所以,我来了哟! 题外话:今天我们一起还看了一道前端的面试题,而后我本来还想多找几道 ...
- 高仿精仿手机版QQ空间应用源码
说明:本次QQ空间更新了以前非常基础的代码 更新内容一 更新了登陆界面二 增加了输入时密码时和登陆成功后播放音频的效果三 增加了导航条渐隐的效果(和真实QQ空间的导航条一样,首先透明,当tablev ...
- QQ空间如何显示相片
QQ空间如何显示相片 前言 此篇文章估计不会太长,有移除首页的风险,但是老夫(称老夫是因为我们真正的叶小钗其实都100多岁啦)是不会怕滴.所以,我来了哟! 题外话:今天我们一起还看了一道前端的面试题, ...
- GIS案例学习笔记-ArcGIS整图大图出图实例教程
GIS案例学习笔记-ArcGIS整图大图出图实例教程 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 1. 通过出图比例尺(1:2000),地图范围测算图纸大小. 图 ...
随机推荐
- mysql ON DUPLICATE KEY UPDATE、REPLACE INTO
INSERT INTO ON DUPLICATE KEY UPDATE 与 REPLACE INTO,两个命令可以处理重复键值问题,在实际上它之间有什么区别呢?前提条件是这个表必须有一个唯一索引或主键 ...
- webpack实践总结
一.Loader写法及执行顺序 从webpack2起,loader的格式如下: module: { rules: [ {test: /\.css$/, use: ['style-loader','cs ...
- Mysql性能优化一:SQL语句性能优化
这里总结了52条对sql的查询优化,下面详细来看看,希望能帮助到你 1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2,应尽量避免在 w ...
- LeetCode 74——搜索二维矩阵
1. 题目 2. 解答 若矩阵为空,比如 [], [[]],此时直接返回 false. 若目标值小于矩阵第一个元素或者大于矩阵最后一个元素,则目标值不在矩阵范围内,直接返回 false. 其他情况下, ...
- JAVA的文件操作【转】
11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...
- restFul介绍及其使用规范
什么是REST和RESTful API? REST:(英文:Representational State Transfer,简称REST)表征性状态转移,是一种软件架构风格. RESTful : RE ...
- linux下easy_install的安装与使用详解
Python中的easy_install工具用起来非常好用,它的作用类似于Php中的pear,或者Ruby中的gem,或者Perl中的cpan. 1.easy_install安装 如果想使用easy_ ...
- 一个简单的NetCore项目:1 - 搭建框架,生成数据库
1- 启动项目 安装.NETCORE SDK,教程在网上可以搜索的到,这里就不讲述了.简单粗暴的方式就是安装最新的VS2015. 2-搭建框架 2.1 打开VS新建一个项目,在弹出的新建项目对话框中, ...
- ssh问题_2
前一段时间配置hadoop集群环境,发现一个现象,教程中的命令形式是ssh hostname,当然这个hostname应该是在ssh发起者的hosts文件中和相应的IP对应:现在问题来了: 我用的是m ...
- linux文件系统(ext2)
一个磁盘可以划分成多个分区,每个分区必须先用格式化工具(例如某种mkfs命令)格式化成某种格式的文件系统,然后才能存储文件,格式化的过程会在磁盘上写一些管理存储布局的信息.下图是一个磁盘分区格式化成e ...