文档章节

控制器的生命周期

zcl那都不是事
 zcl那都不是事
发布于 2016/05/18 15:39
字数 666
阅读 24
收藏 1

控制器的生命周期:loadView—>viewDidLoad—>willSublayout—>didSublayout—>viewWillAppear—>viewDidAppear—>viewWillDisappear—>viewDidDisappear 

 

1.loadView:    是苹果专门为手写代码准备的,一旦实现了该方法  xib / sb 自动失效;准备视图层次结构的根视图;在视图没有被实例化之前,不用追踪view 否则会造成递归调用。 

2. viewWillAppear

1)集成百度地图的时候,在viewWillAppear方法中,具体方法可以打印。

BMKMapView新增viewWillAppear、viewWillDisappear方法来控制BMKMapView的生命周期,并设置delegate,代码如下:

(void)viewWillAppear:(BOOL)animated    

{    

    [_mapView viewWillAppear];    

    _mapView.delegate = self; // 此处记得不用的时候需要置nil,否则影响内存的释放    

}    

-(void)viewWillDisappear:(BOOL)animated    

{    

    [_mapView viewWillDisappear];    

      _mapView.delegate = nil; // 不用时,置nil    

 

2)有的时候,我们的视图使用了Navigation Controller ,但是主界面(rootviewcontroller)或其它push进入的界面 想使用一个全屏的view,就是说,不显示顶部的navigationBar,这个时候,就需要我们来隐藏了。 

 

//隐藏NavigationBar 

-(void) viewWillAppear:(BOOL)animated{ 

     

    [self.navigationController setNavigationBarHidden:YES animated:YES]; //设置隐藏 

    [super viewWillAppear:animated]; 

 

-(void) viewWillDisappear:(BOOL)animated{ 

 

    [self.navigationController setNavigationBarHidden:NO animated:YES]; 

    [super viewWillDisappear:animated]; 

         

 

3)添加通知的时候,这个代码建议写到viewWillAppear

-(void)viewWillAppear: 

   移除通知的时候,建议写在viewWillDisappear中

 

4) 如果要删除系统自带TabBar里面的控制时可以用下面的方法

- (void)viewWillAppear:(BOOL)animated

{

      [super viewWillAppear:animated];

     XZLog(@"删除之前%@", self.tabBar.subviews);

    // 遍历tabBar中所有的子控件,删除不需要控件

    // UITabBarButton 这个类是私有API

    for (UIView *subView in self.tabBar.subviews) {

        if ([subView isKindOfClass:[UIControl class]]) {

            [subView removeFromSuperview];

        }

    }

    XZLog(@"删除之后%@", self.tabBar.subviews);

 

 

 

3.动画效果的执行  需要在viewDidAppear生命周期方法中执行

 

viewDidAppear

//界面已经出现的时候会自动调用, 在这个方法中所有的子视图的位置已经设置完毕。

 

 

 

4.layoutSubviews是UIViiew自带的方法.

 

// 控件的frame发生改变的时候就会调用,一般在这里重写布局子控件的位置和尺寸

// 重写了这个写方法后,一定调用[super layoutSubviews];

 

layoutSubviews方法(何时调用)

 

1)调整子控件的frame,还有它的当前这个方法所在类的控件frame发生变化之后也会来调用,

2)只有当前控件的frame中的“尺寸size”发生变化才会来调用此方法,如果只是当前类的x,y发生变化了,是不会调用layoutSubviews方法的。因为子控件的x,y是参照当前类的x,y,类的x,y发生变化直接子控件的x,y也会随之变化,

3)屏蔽旋转时也会调用此方法.

4)init初始化时不会调用此方法。

5)addSubview会触发layoutSubviews。

 

© 著作权归作者所有

共有 人打赏支持
zcl那都不是事
粉丝 8
博文 7
码字总数 5474
作品 0
承德
ViewModels 简单入门

原文地址:ViewModels : A Simple Example 原文作者:Lyla Fujiwara 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:huanglizhuo 校对者:chuanxing miguoer 简介 两...

Android_开发者
2017/11/13
0
0
iOS开发之UIView与UIViewController的生命周期总结

iOS开发中,创建View常见的两种方式一个是纯代码,一个是借助于XIB;创建ViewController常见的也有两种方式一个是纯代码,一个是借助于StoryBoard。 通过交流我发现很多童鞋对这些概念都很模...

YungFan
03/22
0
0
iOS-UIView-生命周期

一.生命周期 //所谓这里的生命周期,指视图控制被加载后,首先调用的方法,其次调用的方法,到销毁时调用的方法 -(void)loadView;//view 出现之前-(void)viewWillAppear:(BOOL)animated;/...

RainOrz
2015/08/18
0
0
iOS10 UI教程视图的生命周期

iOS10 UI教程视图的生命周期 说到视图的生命周期一般都是指视图控制器的视图生命周期。在视图的声明周期中最主要的有8个方法,分别为loadView()、viewDidLoad()、viewWillAppear(:)、viewWil...

大学霸
2016/11/29
3
0
IOS开发之视图控制器view的生命周期

#import "DiscoverViewController.h" @interface DiscoverViewController () @end @implementation DiscoverViewController //视图控制器view的生命周期的方法都是自动调用的 //注意:重写vie......

鹿微微鹿
2016/04/13
24
0

没有更多内容

加载失败,请刷新页面

加载更多

WinDbg

参考来自:http://www.cnit.net.cn/?id=225 SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols ctrl + d to open dump_file Microsoft (R) Windows Debugger Version 6.12.0002.633......

xueyuse0012
27分钟前
2
0
OSChina 周五乱弹 —— 想不想把92年的萝莉退货

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @罗马的王:分享松澤由美的单曲《地球ぎ》 很久没看圣斗士星矢了 《地球ぎ》- 松澤由美 手机党少年们想听歌,请使劲儿戳(这里) @开源中国首...

小小编辑
54分钟前
10
1
springBoot条件配置

本篇介绍下,如何通过springboot的条件配置,控制Bean的创建 介绍下开发环境 JDK版本1.8 springboot版本是1.5.2 开发工具为 intellij idea(2018.2) 开发环境为 15款MacBook Pro 前言 很多时候,...

贺小五
今天
1
0
javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
1
0
谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linux-tao
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部