一、利用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实现//控制器的生命周期//控制器的生命周期方法的更多相关文章

  1. 01-导航实例-QQ空间Demo示例程序源代码

    01-导航实例-QQ空间.zip62.4 KB // MJLoginViewController.h Map // //  MJLoginViewController.h //  01-导航实例-QQ ...

  2. 拒绝QQ空间-手把手教你美化博客

    为什么要美化? 博客园的主题看起来是有一些年代感了,应该是不符合当代大学生的审美了,起码我就觉得不行,所以我们要进行一些美化,但是搞技术的人的博客不应该搞得花里胡哨,最好是简洁一些(个人想法),网上有 ...

  3. 参数化登录QQ空间实例

    通过参数化的方式,登录QQ空间 实例源码: # coding:utf-8 from selenium import webdriver import unittest import time clas ...

  4. Bootstrap历练实例:激活导航状态

    激活导航状态 您可以在激活状态的胶囊式导航和列表导航中放置徽章.通过使用 <span class="badge"> 来激活链接,如下面的实例所示: <!DOCTY ...

  5. WPF MvvmLight简单实例(1) 页面导航

    原文:WPF MvvmLight简单实例(1) 页面导航 实现了那些功能,先看看截图: 操作描述: 在程序运行后,点击“Load”按钮,页面会加载PageOne,点击PageOne页面中的“Next” ...

  6. 【web前端优化之图片模糊到清晰】看我QQ空间如何显示相片

    前言 此篇文章估计不会太长,有移除首页的风险,但是老夫(称老夫是因为我们真正的叶小钗其实都100多岁啦)是不会怕滴.所以,我来了哟! 题外话:今天我们一起还看了一道前端的面试题,而后我本来还想多找几道 ...

  7. 高仿精仿手机版QQ空间应用源码

    说明:本次QQ空间更新了以前非常基础的代码 更新内容一 更新了登陆界面二  增加了输入时密码时和登陆成功后播放音频的效果三 增加了导航条渐隐的效果(和真实QQ空间的导航条一样,首先透明,当tablev ...

  8. QQ空间如何显示相片

    QQ空间如何显示相片 前言 此篇文章估计不会太长,有移除首页的风险,但是老夫(称老夫是因为我们真正的叶小钗其实都100多岁啦)是不会怕滴.所以,我来了哟! 题外话:今天我们一起还看了一道前端的面试题, ...

  9. GIS案例学习笔记-ArcGIS整图大图出图实例教程

    GIS案例学习笔记-ArcGIS整图大图出图实例教程 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 1. 通过出图比例尺(1:2000),地图范围测算图纸大小. 图 ...

随机推荐

  1. .NET基础知识之八——深拷贝,浅拷贝

    目录 1.概念 2.使用赋值符号"=" 3.浅复制 4.深复制 5.问题一:如果类里面嵌套有多个类,然后嵌套类里面又嵌套类,那么像上面实现深拷贝的方法还能用吗? 6.问题二:实现深 ...

  2. 我所认识的XPath

    实例demo 测试demo所需要xml测试数据 <?xml version="1.0" encoding="iso-8859-1"?> <bo ...

  3. js面向对象过程

    var a = new  b(); 等价于 var a={}; a=b.prototype; b.call(a);

  4. eclipse 列编辑

    ALT + SHIFT +A 进入列编辑模式,可以一次性操作多行列. 再次按住 ALT + SHIFT +A 则退出列编辑模式.

  5. 《python核心编程第二版》第5章习题

    5-1 整形 讲讲 Python 普通整型和长整型的区别 答:普通整型 32位,长整数类型能表达的 数值仅仅与你的机器支持的(虚拟)内存大小有关 5-2 运算符(a) 写一个函数,计算并返回两个数的乘 ...

  6. Mysql字符串截取:Left()、Right()、Substring()、Substring_index()

    在实际的项目开发中有时会有对数据库某字段截取部分的需求,这种场景有时直接通过数据库操作来实现比通过代码实现要更方便快捷些, mysql有很多字符串函数可以用来处理这些需求,如Mysql字符串截取总结: ...

  7. anaconda常用的命令

    常用操作命令: 一.环境操作 1.查看环境管理的全部命令帮助: conda env -h 2.查看当前系统下的环境: conda info -e 3.创建环境: conda create env_na ...

  8. c#执行插入sql 时,报错:异常信息:超时时间已到。在操作完成之前超时时间已过或服务器未响应

    问题:c#执行插入sql 时,报错:异常信息:超时时间已到.在操作完成之前超时时间已过或服务器未响应 解决: SqlCommand cmd = new SqlCommand(); cmd.Comman ...

  9. MongoDB Linux下的安装和启动

    1. 下载MongoDB,此处下载的版本是:mongodb-linux-i686-1.8.1.tgz.tar. http://fastdl.mongodb.org/linux/mongodb-linu ...

  10. PokeCats开发者日志(一)

      现在是PokeCats游戏开发的第三天的上午,突然心血来潮想记录一下这个开发过程,于是写起了开发者日志. day1   作为一只ACM退役喵,寒假回家,闲着没事,天天在召唤师峡谷里闲逛也挺没意思的 ...