新浪微博 有道云笔记 麦库 EverNote Pocket Instapaper 更多

笔记

笔记

Posted on February 11th, 2014



一、利用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"]; // 设置图标












chenyilong

 

© chenyilong. Powered by Postach.io
posted @ 2014-02-21 22:27  iTeaTime(技术清谈)  阅读(212)  评论(0编辑  收藏  举报