🔥uiviewcontroller的生命周期(代码片段)

1-434 1-434     2022-12-01     419

关键词:

UIViewController 的 生命周期
#pragma mark --- life circle

// 非storyBoard(xib或非xib)都走这个方法
- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
    NSLog(@"%s", __FUNCTION__);
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) 
        
    
    return self;


// 如果连接了串联图storyBoard 走这个方法
- (instancetype)initWithCoder:(NSCoder *)aDecoder 
    NSLog(@"%s", __FUNCTION__);
    if (self = [super initWithCoder:aDecoder]) 
        
    
    return self;


// xib 加载 完成
- (void)awakeFromNib 
    [super awakeFromNib];
    NSLog(@"%s", __FUNCTION__);


// 加载视图(默认从nib)
- (void)loadView 
    NSLog(@"%s", __FUNCTION__);
    self.view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.view.backgroundColor = [UIColor redColor];


//视图控制器中的视图加载完成,viewController自带的view加载完成
- (void)viewDidLoad 
    NSLog(@"%s", __FUNCTION__);
    [super viewDidLoad];


//视图将要出现
- (void)viewWillAppear:(BOOL)animated 
    NSLog(@"%s", __FUNCTION__);
    [super viewWillAppear:animated];


// view 即将布局其 Subviews
- (void)viewWillLayoutSubviews 
    NSLog(@"%s", __FUNCTION__);
    [super viewWillLayoutSubviews];


// view 已经布局其 Subviews
- (void)viewDidLayoutSubviews 
    NSLog(@"%s", __FUNCTION__);
    [super viewDidLayoutSubviews];


//视图已经出现
- (void)viewDidAppear:(BOOL)animated 
    NSLog(@"%s", __FUNCTION__);
    [super viewDidAppear:animated];


//视图将要消失
- (void)viewWillDisappear:(BOOL)animated 
    NSLog(@"%s", __FUNCTION__);
    [super viewWillDisappear:animated];


//视图已经消失
- (void)viewDidDisappear:(BOOL)animated 
    NSLog(@"%s", __FUNCTION__);
    [super viewDidDisappear:animated];


//出现内存警告  //模拟内存警告:点击模拟器->hardware-> Simulate Memory Warning
- (void)didReceiveMemoryWarning 
    NSLog(@"%s", __FUNCTION__);
    [super didReceiveMemoryWarning];


// 视图被销毁
- (void)dealloc 
    NSLog(@"%s", __FUNCTION__);


** 查看 打印 结果 **
2017-03-01 18:03:41.577 ViewControllerLifeCircle[32254:401790] -[ViewController initWithCoder:]
2017-03-01 18:03:41.579 ViewControllerLifeCircle[32254:401790] -[ViewController awakeFromNib]
2017-03-01 18:03:41.581 ViewControllerLifeCircle[32254:401790] -[ViewController loadView]
2017-03-01 18:03:46.485 ViewControllerLifeCircle[32254:401790] -[ViewController viewDidLoad]
2017-03-01 18:03:46.486 ViewControllerLifeCircle[32254:401790] -[ViewController viewWillAppear:]
2017-03-01 18:03:46.487 ViewControllerLifeCircle[32254:401790] -[ViewController viewWillLayoutSubviews]
2017-03-01 18:03:46.488 ViewControllerLifeCircle[32254:401790] -[ViewController viewDidLayoutSubviews]
2017-03-01 18:03:46.490 ViewControllerLifeCircle[32254:401790] -[ViewController viewDidAppear:]
2017-03-01 19:03:13.308 ViewControllerLifeCircle[32611:427962] -[ViewController viewWillDisappear:]
2017-03-01 19:03:14.683 ViewControllerLifeCircle[32611:427962] -[ViewController viewDidDisappear:]
2017-03-01 19:03:14.683 ViewControllerLifeCircle[32611:427962] -[ViewController dealloc]
2017-03-01 19:12:05.927 ViewControllerLifeCircle[32611:427962] -[ViewController didReceiveMemoryWarning]

 

 

 

T

🔥🔥如何令自己所写的对象具有拷贝功能?(代码片段)

实现NSCoping协议。如果自定义的对象分为可变版本与不可变版本,那么就要同时实现NSCopying与NSMutableCopying协议。@protocolNSCopying-(id)copyWithZone:(nullableNSZone*)zone;@end@protocolNSMutableCopying-(id)mutableCopyWithZone:(nullableNSZone*) 查看详情

🔥🔥造成循环引用和内存泄漏的几种情况

原文地址:http://www.cnblogs.com/wengzilin/p/4347974.htmlARC已经出来很久了,自动释放内存的确很方便,但是并非绝对安全绝对不会产生内存泄露。导致iOS对象无法按预期释放的一个无形杀手是——循环引用。循环引用可以简单理解... 查看详情

git入门图文教程(1.5w字40图)🔥🔥--深入浅出图文并茂

Git是当前最先进、最主流的分布式版本控制系统,免费、开源!核心能力就是版本控制。本文深入浅出、图文并茂的展示了Git的入门系列教程。01、认识一下Git!—简介Git是当前最先进、最主流的分布式版本控制系统,免费、开... 查看详情

🔥iskindofclass和ismemberofclass(代码片段)

下面代码结果如何?//insertcodehere...BOOLre1=[(id)[NSObjectclass]isKindOfClass:[NSObjectclass]];//1BOOLre2=[(id)[NSObjectclass]isMemberOfClass:[NSObjectclass]];//0BOOLre3=[(id)[XZPersonclass]isKindOfClass:[XZP 查看详情

🔥界面卡顿的原因?

界面卡顿的原因,界面为什么会卡顿?界面成像原理: 不论是以前的CRT还是现在的液晶显示器,成像原理是一致的;  CPU部分:逻辑的计算;计算好将要显示的内容转交给GPU;GPU部分:GPU开始渲染后将结果换到帧缓冲区,随后视频... 查看详情

🔥springboot图文教程2—日志的使用「logback」「log4j」

有天上飞的概念,就要有落地的实现概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例文章结尾配套自测面试题,学完技术自我测试更扎实概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一... 查看详情

🔥如果页面a跳转到页面b,a的viewdiddisappear方法和b的viewdidappear方法哪个先调用?(代码片段)

如果页面A跳转到页面B,A的viewDidDisappear方法和B的viewDidAppear方法哪个先调用?ViewController为一级界面,BViewController和CViewController为两个二级界面ViewController为一级界面,BViewController和CViewController为两个二级界面//我在两个VC里面都... 查看详情

200行代码实现简版react🔥(代码片段)

200行代码实现简版react??现在(2018年)react在前端开发领域已经越来越??了,我自己也经常在项目中使用react,但是却总是好奇react的底层实现原理,多次尝试阅读react源代码都无法读下去,确实太难了。前不久在网上看到几篇介绍如... 查看详情

UIViewController 包含 UIViewControllers 流

】UIViewController包含UIViewControllers流【英文标题】:UIViewControllercontainingaflowofUIViewControllers【发布时间】:2016-07-0807:30:08【问题描述】:我正在构建一个UIViewController(outerviewController),其中包含另一个UIViewController(innerviewController)。... 查看详情

UIViewControllers 中的 UIViewController

】UIViewControllers中的UIViewController【英文标题】:UIViewControllerwithinUIViewControllers【发布时间】:2015-08-2812:17:12【问题描述】:我有一个UIViewController,里面有UITabBar。我正在尝试模仿UITabBarController。我的问题是在选择标签aritem时,我... 查看详情

从其子 UIViewControllers 访问父 UIViewController

】从其子UIViewControllers访问父UIViewController【英文标题】:AccessingaparentUIViewControllerfromitschildrenUIViewControllers【发布时间】:2015-02-0916:20:10【问题描述】:我有一个名为Container的UIViewController,里面有另外两个孩子UIViewControllers:Maste... 查看详情

UIViewController 呈现另一个 UIViewController

】UIViewController呈现另一个UIViewController【英文标题】:UIViewControllerpresentanotherUIViewController【发布时间】:2011-10-0709:46:37【问题描述】:我有一个UIViewController1UIButton(作为子视图添加),在我按下Button(见下图1)后,在它上面添... 查看详情

多模态 UIViewControllers |仅关闭顶部模态 UIViewController

】多模态UIViewControllers|仅关闭顶部模态UIViewController【英文标题】:MuiltpleModalUIViewControllers|DismissTopModalUIViewControllerOnly【发布时间】:2014-02-0611:17:20【问题描述】:我的UIViewController堆栈如下所示:+------UIViewController_C(presented)+----UI... 查看详情

使用 IBAction UIViewController 弹出 UIViewController

】使用IBActionUIViewController弹出UIViewController【英文标题】:PopupUIViewControllerwithanIBActionUIViewController【发布时间】:2012-12-0216:40:52【问题描述】:是否可以在iPad中弹出UIViewController(xib文件)之类的UIPopOverControl?我有一个单独的NIB... 查看详情

在主 UiViewController 中动态声明子 UiViewController

】在主UiViewController中动态声明子UiViewController【英文标题】:DynamicallydeclarechildUiViewControllerinmainUiViewController【发布时间】:2011-12-1601:36:28【问题描述】:在我的程序中,我必须声明和使用多个子UIViewController,就像我的主UIViewContr... 查看详情

关闭当前 UIViewcontroller 并呈现一个新的 UiViewController

】关闭当前UIViewcontroller并呈现一个新的UiViewController【英文标题】:dismisscurrentUIViewcontrollerandpresentanewUiViewController【发布时间】:2016-06-0406:16:16【问题描述】:我打算解散我当前的UIViewController并提交给新的UIViewController。我使用... 查看详情

从另一个 UIViewController 推送一个 UIViewController - 如何?

】从另一个UIViewController推送一个UIViewController-如何?【英文标题】:PushingaUIViewControllerfromanotherUIViewController-Howto?【发布时间】:2012-12-1218:49:08【问题描述】:我有一个UIViewController子类(比如BBB),它继承自已经编写的自定义UIVi... 查看详情

从另一个 UIViewController 呈现 UIViewController

】从另一个UIViewController呈现UIViewController【英文标题】:PresentUIViewControllerfromanotherUIViewController【发布时间】:2013-10-2220:30:48【问题描述】:我有一个名为ViewControllerHome的UIViewController,当用户触摸屏幕上的图像时,我想显示第二... 查看详情