AppDelegate
生命周期
注意:退出到后台再杀死程序,不调用 terminate
控制器
- 控制器的 view 是懒加载
loadView -> viewDidload - 加载自定义控制器的三种方式
都需要先删掉系统默认的 main 入口;
都需要先创建一个 window
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
- 通过代码创建
CViewController *cvc = [[CViewController alloc] init]; self.window.rootViewController = cvc; [self.window makeKeyAndVisible];
- 通过 storyboard 创建
UIStoryboard *cc = [UIStoryboard storyboardWithName:@"ccc" bundle:nil]; // UIViewController *vc = [cc instantiateInitialViewController]; UIViewController *vc = [cc instantiateViewControllerWithIdentifier:@"aaa"]; self.window.rootViewController = vc; [self.window makeKeyAndVisible];
- 通过 xib 创建
fileOwner 修改为对应的控制器
将 fileOwner 里面的 view 连线到 xib 里面的 view- xib 的名字很随意
- xib 的名字和 controller 的名字相近(aaa.xib aaaController.m)
- xib 的名字和controller 的名字一样
- 通过代码创建
UINavigationController
- 基本使用:AppDelegate 中设置给 self.window.rootViewController
- 入栈、出栈 概念
- 控制器的生命周期
- 设置导航栏的内容 : self.navigationItem
默认是有 iOS 右滑返回的,但是如果左侧设置了按钮是没有这个功能的 - 使用导航控制器传值
- 代码传值
- storyboard 使用 segue 传值
数据存储
- 获取Documents、preference、cache、temp 目录的方法:NSSearchPathForDirectoriesInDomains/NSTemporaryDirectory
- 3中存储方式
- plist 存储:NSArray NSDict NSString
- preference 存储
- 归档、反归档
网友评论