#import "ViewController.h"
#import "SecondViewController.h" @interface ViewController () @end @implementation ViewController // 视图控制器的生命周期
// 视图控制器的加载方法
// 模态视图方法 /*
// 视图控制器的加载方法
- (instancetype)init
{
self = [super init];
if (self) {
// 属性、成员变量
// 千万不要在这个地方初始化控件
}
return self;
} - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
// 初始化控件(用nib文件创建的控件)
// IB (.Xib文件) 没有stroyboard之前用的 这个文件叫nib文件
} - (void)loadView
{
//初始化试图用
}
*/ // 视图加载完成时调用,视图控制器当中(伪第一)调用的方法
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"viewDidLoad"); self.view.backgroundColor = [UIColor cyanColor]; UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
[btn setFrame:CGRectMake(, , , )];
[btn setTitle:@"next" forState:UIControlStateNormal];
[btn setBackgroundColor:[UIColor orangeColor]];
[btn addTarget:self action:@selector(modelMethod) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn]; }
#pragma mark - life Cycle
// 视图(每次)将要出现的时候调用
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSLog(@"viewWillAppear"); }
// 视图(每次?)出现完成的时候调用
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
NSLog(@"veiwDidAppear"); }
// 视图(每次)将要消失的时候调用
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
NSLog(@"viewWillDisappear"); }
// 视图消失完成之后时候调用
-(void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
NSLog(@"viewDidDisappear"); } #pragma mark - Model View Method(模态视图方法)
- (void)modelMethod
{
// 视图切换,切换到下一个视图
SecondViewController *secondVC = [[SecondViewController alloc] init];
// // 伪翻页
// secondVC.modalTransitionStyle = UIModalTransitionStylePartialCurl;
// // 模态方法跳入
// [self presentViewController:secondVC animated:YES completion:nil]; //屌丝方法
[self.view addSubview:secondVC.view];
[self addChildViewController:secondVC];
} #pragma mark - other System Method
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
} @end
 #import "SecondViewController.h"

 @interface SecondViewController ()

 @end

 @implementation SecondViewController

 - (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"viewDidLoad"); self.view.backgroundColor = [UIColor darkGrayColor]; UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
[btn setFrame:CGRectMake(, , , )];
[btn setTitle:@"back" forState:UIControlStateNormal];
[btn setBackgroundColor:[UIColor whiteColor]];
[btn addTarget:self action:@selector(backMethod) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn]; }
- (void)backMethod
{
// 模态方法跳出
// [self dismissViewControllerAnimated:YES completion:nil]; //屌丝方法跳出
[self.view removeFromSuperview];
[self removeFromParentViewController];
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}

iOS UI-(多)视图控制器的生命周期、加载方法和模态视图方法以及屌丝方法的更多相关文章

  1. iOS视图控制器的生命周期

    今天面试有一道面试题因为回答不好,因为也不经常涉及所以有点模糊,我选择了最保守的回答,没有展开写出我对这个问题的理解. 问题:IOS 开发 loadView 和 viewDidLoad 的区别? 经过 ...

  2. 通俗易懂的讲解iphone视图控制器的生命周期

    IOS 视图控制器的生命周期非常非常重要,所以我有必要写个文章来和大家一起探讨问题. 今天在学习视图控制器的生命周期,也看了一下网上的一些资料,但总觉得不是那么好理解,首先我们来看一张图: 先粗略讲一 ...

  3. vue生命周期加载顺序

    1.beforeCreate(创建前)表示实例完全被创建出来之前,vue 实例的挂载元素$el和数据对象 data 都为 undefined,还未初始化.此钩子函数不能获取到数据,dom元素也没有渲染 ...

  4. iOS 控制器的生命周期(UIController)

    前言: 在iOS开发中,控制器的生命周期非常重要,什么时候加载页面,什么时候请求接口,什么时候刷新界面等等,都有很多值得优化的地方 loadView: 最先执行的方法,控制器关联的有Nib文件的时候, ...

  5. 整理ViewController的生命周期和加载过程

    按照执行顺序排列 - initWithCoder:通过nib文件初始化时触发 - awakeFromNib:nib文件被加载的时候,会发送一个awakeFromNib的消息到nib文件中的每个对象 p ...

  6. iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期

    iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期 一.基本过程 新建一个项目,系统默认的主控制器继承自UIViewController,把主控制器两个文件删掉. 在stor ...

  7. iOS视图控制对象生命周期

    iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 ...

  8. IOS 视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途

    iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 ...

  9. 【转】【iOS知识学习】_视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途

    原文网址:http://blog.csdn.net/weasleyqi/article/details/8090373 iOS视图控制对象生命周期-init.viewDidLoad.viewWillA ...

随机推荐

  1. Mysql利用存储过程插入500W条数据

    比如插入1000W数据,不建议一次性插入,比如一次插入500W,分批插入. 创建表 /*部门表*/ CREATE TABLE dept( id INT UNSIGNED PRIMARY KEY AUT ...

  2. j2ee分布式缓存同步实现方案dlcache v1.0.1

    j2ee分布式缓存同步实现方案dlcache v1.0.1 发布 修复问题: 1.支持两个层次的缓存,典型的用于产品大类.产品小类,数据字典以及子项: 更新后见: pan http://pan.bai ...

  3. Python descriptor 以及 内置property()函数

    Python Descriptor  1, Python Descriptor是这样一个对象 它按照descriptor协议, 有这样的属性之一 def __get__(self, obj, type ...

  4. 02: shell中的if、case、for等语句

    目录: 1.1 shell中常用运算符 1.2 使用if条件语句 1.3 shell 中的for循环 1.4 shell中的while循环语句 1.5 使用case分支语句 1.1 shell中常用运 ...

  5. java项目报错: org.springframework.beans.factory.BeanCreationException找不到mapper.xml文件

    错误代码 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userSer ...

  6. <OFFER05> 05_ReplaceSpaces

    void ReplaceBlank(char str[], int length) // length >= the real length of string { ) { return; } ...

  7. 51nod 1073约瑟夫环

    思路传送门 :http://blog.csdn.net/kk303/article/details/9629329 n里面挑选m个 可以递推从n-1里面挑m个 然后n-1里面的x 可以转换成 n里面的 ...

  8. Pytorch版本yolov3源码阅读

    目录 Pytorch版本yolov3源码阅读 1. 阅读test.py 1.1 参数解读 1.2 data文件解析 1.3 cfg文件解析 1.4 根据cfg文件创建模块 1.5 YOLOLayer ...

  9. HDU 1043 Eight(双向BFS+康托展开)

    http://acm.hdu.edu.cn/showproblem.php?pid=1043 题意:给出一个八数码,求出到达指定状态的路径. 思路:路径寻找问题.在这道题里用到的知识点挺多的.第一次用 ...

  10. UVa 140 带宽

    题意:给出一个n个结点的图G和一个结点的排列,定义结点的带宽为i和相邻结点在排列中的最远距离,求出让带宽最小的结点排列. 思路:用STL的next_permutation来做确实是很方便,适当剪枝一下 ...