今天面试有一道面试题因为回答不好,因为也不经常涉及所以有点模糊,我选择了最保守的回答,没有展开写出我对这个问题的理解. 问题:IOS 开发 loadView 和 viewDidLoad 的区别? 经过一番学习之后,我觉得这样答题会更好.viewDidLoad 此方法只有当view从nib文件初始化的时候才被调用,也就是如果不从nib调用它就不会被执行.loadView 此方法在控制器的view为nil的时候被调用. 此方法用于以编程的方式创建view的时候用到. - ( void ) loadV…
#import "ViewController.h" #import "SecondViewController.h" @interface ViewController () @end @implementation ViewController // 视图控制器的生命周期 // 视图控制器的加载方法 // 模态视图方法 /* // 视图控制器的加载方法 - (instancetype)init { self = [super init]; if (self) {…
IOS 视图控制器的生命周期非常非常重要,所以我有必要写个文章来和大家一起探讨问题. 今天在学习视图控制器的生命周期,也看了一下网上的一些资料,但总觉得不是那么好理解,首先我们来看一张图: 先粗略讲一下: 看这段源码就可以理解上面的那句话.这句话的意思就是说,如果view不存在,就会触发loadView方法 这话的意思是说如果不用nib方式,就可以在子类中自定义视图树,但不要直接去调用loadview方法. 再下一步问,是否是自定义方法Custom Method?(也可以看成是自定义视图)如果是…
1.beforeCreate(创建前)表示实例完全被创建出来之前,vue 实例的挂载元素$el和数据对象 data 都为 undefined,还未初始化.此钩子函数不能获取到数据,dom元素也没有渲染出来,此钩子函数不会用来做什么事情. 2.created(创建后)数据对象 data 已存在,可以调用 methods 中的方法,操作 data 中的数据,但 dom 未生成,$el 未存在 .在这个钩子函数里面,如果同步更改数据的话,不会影响运行中钩子函数的执行.可以用来发送ajax请求,也可以做…
前言: 在iOS开发中,控制器的生命周期非常重要,什么时候加载页面,什么时候请求接口,什么时候刷新界面等等,都有很多值得优化的地方 loadView: 最先执行的方法,控制器关联的有Nib文件的时候,该方法会从Nib文件加载view. ViewDidLoad: 该方法可以用来可以用来初始化控件.也可进行异步的网络请求,该方法在页面出来之前调用,方法在执行结束后,页面才会出现.因此该方法里面不能用来执行耗时的主线程操作.该方法在控制器的整个生命周期中只会调用一次. ViewWillAppear:…
按照执行顺序排列 - initWithCoder:通过nib文件初始化时触发 - awakeFromNib:nib文件被加载的时候,会发送一个awakeFromNib的消息到nib文件中的每个对象 ps: 从Storyboards中加载的时候,会调用initWithCode,如果不存在则调用init.之后对里面的每个对象调用awakeFromNib方法.从内存中alloc出来的情况下,调init方法.     - loadView:开始加载视图控制器自带的view 来生成UIViewContro…
iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期 一.基本过程 新建一个项目,系统默认的主控制器继承自UIViewController,把主控制器两个文件删掉. 在storyboard中,默认的控制器是View Controller,而我们需要的是导航控制器,那么就把系统的给删掉,拖一个导航控制器进来,导航控制器中默认的第一个子控制器是一个tableview controller,这里不需要,把它删掉,重新拖三个View Controller到界面上进行连线,简单的设…
iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用: viewDidApper-UIViewController对象的视图已经加入到窗口时调用: viewWillDisappear-UIViewCont…
iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用: viewDidApper-UIViewController对象的视图已经加入到窗口时调用: viewWillDisappear-UIViewCont…
原文网址:http://blog.csdn.net/weasleyqi/article/details/8090373 iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用: viewDidApper-U…
init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用: viewDidApper-UIViewController对象的视图已经加入到窗口时调用: viewWillDisappear-UIViewController对象的视图即将消失.被覆盖或是隐藏时调用: viewDidDisappear-UIViewController对象的视图已经消失.被覆盖或是隐藏时调用: viewVillUnload-当内存…
IOS的工程目录结构和生命周期 ·simple table文件夹:工程相关源代码和配置文件 BIDAppDelegate :    委托的声明和实现 BIDViewController:    视图控制类的声明和实现 xib文件:  视图文件,提供给interface builder(IB)设计和编辑视图 ·supporting files: main.m和资源文件 xxx-info.plist:包含应用程序相关属性列表,如版本,程序名等 .pch文件:预编译头文件,相当于MFC里的stdafx…
iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用: viewDidApper-UIViewController对象的视图已经加入到窗口时调用: viewWillDisappear-UIViewCont…
控制器View的生命周期方法:只要是控制器的生命周期方法,都是以view开头. 控制器View加载完成时调用- (void)viewDidLoad { [super viewDidLoad];} 控制器的View显示完成时调用-(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated];} 控制器的View即将显示的时候调用-(void)viewWillAppear:(BOOL)animated{ [super viewW…
原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2018-07-22/19.html 作者:夜月归途 出处:http://www.guitu18.com/ 本博客中未标明转载的文章归作者夜月归途和博客园所有. 欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. Servlet生命周期和加载机制 查看Servlet3.1源码,其接口定义如下: package javax.servlet…
上篇博文和大家分享了下拉刷新,这是一个用户体验非常好的操作方式.新浪微薄就是使用这种方式的典型. 还有个问题,当用户从网络上读取微薄的时候,如果一 下子全部加载用户未读的微薄这将耗费比较长的时间,造成不好的用户体验,同时一屏的内容也不足以显示如此多的内容.这时候,我们就需要用到另一个功能,那 就是listview的分页了.通过分页分次加载数据,用户看多少就去加载多少. 通常这也分为两种方式,一种是设置一个按钮,用户点击即加载.另一种是当用户滑动到底部时自动加载.今天我就和大家分享一下这个功能的实…
创建子页面 在mobile app开发过程中,经常遇到卡头卡尾的页面,此时若使用局部滚动,在android手机上会出现滚动不流畅的问题: mui的解决思路是:将需要滚动的区域通过单独的webview实现,完全使用原生滚动.具体做法则是:将目标页面分解为主页面和内容页面,主页面显示卡头卡尾区域,比如顶部导航.底部选项卡等:内容页面显示具体需要滚动的内容,然后在主页面中调用mui.init方法初始化内容页面. mui.init({ subpages:[{ url:your-subpage-url,/…
#pragma mark - 控制器生命周期 // 视图将要出现 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; NSLog(@"%s", __func__); } // 视图已经出现 - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; NSLog(@"%s", __func__)…
转自http://blog.csdn.net/qijianli/article/details/7826979 iOS的SDK中提供很多原生ViewController,大大提高了我们的开发效率,下面是我的一些经验. 一.结构 按结构可以对iOS的所有ViewController分成两类:1.主要用于展示内容的ViewController,这种ViewController主要用于为用户展示内容,并与用户交互,如UITableViewController,UIViewController.2.用于…
应用程序的状态 IOS的应用程序一共有5种状态. Not running(未运行):程序未启动 Inactive(未激活):其他两个状态切换时出现的短暂状态.唯一在此状态停留时间比较长的情况是:当用户锁屏时?或者系统提示用户去响应Alert窗口(如来电.信息)时 Active(激活):在屏幕上显示的正常运行状态,该状态下可以接收用户输入并更新显示 Backgroud(后台):程序在后台且能执行代码.用户按下Home键不久后进入此状态(先进入了Inactive状态,再进入Background状态)…
这是一个ViewController完整的声明周期,其实里面还有好多地方需要我们注意一下: 1:initialize函数并不会每次创建对象都调用,只有在这个类第一次创建对象时才会调用,做一些类的准备工作,再次创建这个类的对象,initalize方法将不会被调用,对于这个类的子类,如果实现了initialize方法,在这个子类第一次创建对象时会调用自己的initalize方法,之后不会调用,如果没有实现,那么它的父类将替它再次调用一下自己的initialize方法,以后创建也都不会再调用.因此,如…
视图控制器就是用来管理iOS程序中的视图,默认一个UIViewController为我们提供了一个视图UIView  我们称为根视图 - (instancetype)init{ if (self = [super init]) { //数据的配置,初始化,不要做页面的操作 } return self; } - (void)loadView{ [super loadView]; //不能直接调用loadView,系统自动调用,当一个控制器没有提供默认的视图而需要视图系统会调用loadView }…
一.介绍: viwe和viewController的生命周期是最基本的知识,如果很好地理解它们的方法调用的执行顺序,就能很好地设计代码的风格.这篇博客转载自:http://www.cnblogs.com/peaceWang/p/5346726.html.有时间我会在此基础上完善,具体讲述一下每一个方法中最适合执行的操作. 控制器创建的生命周期 . 如果从stroryBoard 中产生一个controller,那么会先调用initWithCoder:, awakeFromNib, loadView…
控制器生命周期 http://www.yii-china.com/doc/guide/structure_controllers.html 处理一个请求时,应用主体 会根据请求路由创建一个控制器,控制器经过以下生命周期来完成请求: 在控制器创建和配置后,yii\base\Controller::init() 方法会被调用. 控制器根据请求操作ID创建一个操作对象: 如果操作ID没有指定,会使用yii\base\Controller::defaultAction默认操作ID: 如果在yii\bas…
  一.利用storyboard完成导航1.storyboard中用来跳转的每一根线 都是 一个 UIStoryboardSegue对象1> 自动跳转 (从 某个按钮 拖线到 下一个目的控制器) 2> 手动跳转 (从 来源控制器 拖线到 下一个目的控制器)* 一定要给segue绑定一个唯一的identifier* 如何跳转?通过来源控制器的一个方法来执行这个UIStoryboardSegue对象[self performSegueWithIdentifier:@"login2home…
iOS精选源码 如丝般顺滑的微信朋友圈(点赞,评论,图文混排表情,... 动态菜单第三版本:动态项,自适应方向 仿appstore首页滚动效果 iOS 透明导航栏方案 TransparentNavigation 一键合成APP引导页,包含不同状态下的引导页操作方式,同时... 很帅的数据加载动画(可以用于数据列表加载的展现) 实现通知视图,零耦合JMNotifyView DDGBannerScrollView使用文档 微信7.0红包助手 ios CAAnimation动画和SceneKit小游戏…
不知不觉自学ios已经四个月了,从OC语法到app开发,过程虽然枯燥无味,但是结果还是挺有成就感的,在此分享我的ios开发之路中的小小心得~废话不多说,先上我们今天要实现的效果图: 有过一点做APP经验的都知道,提示框和等待加载框一直是APP首当其中的效果,ios不像android一样,自带toast和progressbarDialog,所以在做ios开发的时候,我首先想到了先封装这两个基础控件~当然网上的资源数不胜数,但是博主抱着一颗自主研究的精神,做出的效果也不错,也已适配了所有iphone…
延续:iOS开发基础-图片切换(1),对(1)里面的代码进行改善. 在 ViewController 类中添加新的数组属性:  @property (nonatomic, strong) NSArray *infoArray; //存放图片信息 通过 self.infoArray 的 getter 方法对其实现初始化(懒加载),其中代码中的 _infoArray 不能用 self.infoArray 替换: //infoArray的get方法 - (NSArray *)infoArray { N…
lazy懒加载(延迟加载)UITableView 举个例子,当我们在用网易新闻App时,看着那么多的新闻,并不是所有的都是我们感兴趣的,有的时候我们只是很快的滑过,想要快速的略过不喜欢的内容,但是只要滑动经过了,图片就开始加载了,这样用户体验就不太好,而且浪费内存.这个时候,我们就可以利用lazy加载技术,当界面滑动或者滑动减速的时候,都不进行图片加载,只有当用户不再滑动并且减速效果停止的时候,才进行加载.刚开始我异步加载图片利用SDWebImage来做,最后试验的时候出现了重用bug,因为虽然…
延续:iOS开发基础-图片切换(3),对(3)里面的代码用懒加载进行改善. 一.懒加载基本内容 懒加载(延迟加载):即在需要的时候才加载,修改属性的 getter 方法. 注意:懒加载时一定要先判断该属性是否为 nil ,如果为 nil 才进行实例化. 优点: 1) viewDidLoad 中创建对象的方法用懒加载创建,增加可读性. 2)每个控件的 getter 方法中负责各自的实例化处理,增加代码之间的独立性. 二.代码实例 简化 viewDidLoad 方法如下: - (void)viewD…