首页 > 其他分享 >iOS7应用开发5、视图控制器View Controller及其生命周期

iOS7应用开发5、视图控制器View Controller及其生命周期

时间:2023-03-27 18:35:37浏览次数:40  
标签:控制器 调用 视图 Controller storyboard 方法 iOS7 属性


1、UITextView:

该类与Label类类似,可显示多行,可以编辑内容,可以滚动查看内容;

包含属性NSTextStorage *textStorage,该类是NSMutableAttributedString的基类;修改该属性可以自动更新UITextView的内容;

包含属性UIFont *font,用于设置所有字符的字体;

NSTextContainer *textContainer和NSLayoutManager *layoutManager属性,用于设置文本的其他一些属性;


2、视图控制器的生命周期

* 创建:通过storyboard或者代码创建MVC;

* 设定显示视图接口(outlet)、几何变化、视图的显示和消失等操作;

* 随后调用viewDidLoad,可以进行下一步的初始化操作;只会被调用一次;注意不要再这里设定与界面尺寸相关的设置;

* 在视图显示之前调用viewWillAppear;该函数可以多次调用;

* 视图消失之前调用viewWillDisappear;处理保存当前视图的一些信息(如需要);

* 在布局变化前后,调用viewWill/DidLayoutSubviews处理相关信息;

* 自动旋转:shouldAutorotate返回yes,supportedInterfaceOrientations返回支持的方向;

* 内存不足警告时,调动didReceiveMemoryWarning进行处理,如释放掉当前没有显示的视图,将强引用对象设为nil等;


进一步讨论:

UIViewController继承自UIResponder,控制数据和视图的显 示等操作。在创建ViewController的时候调用init方法的时候,在调用[super init]的时候自然会调用initWithNib方法;在创建视图控制器的时候,首先会判断当前视图控制器中是否存在视图;如果不存在,则会调用loadView方 法;在该方法中进行判断视图产生的方法:自定义、storyboard还是空视图,在此之前,当前ViewController的视图还是nil;而当自 定义视图、从storyboard中装载视图或者生产空视图完成后,ViewController便有其具体的值了。下图就是大致流程:

iOS7应用开发5、视图控制器View Controller及其生命周期_移动开发

如果视图控制器的view尚不存在,那么在调用其getter方法的时候会调用 loadView方法(注意,不应该直接在代码中调用loadview方法,而应覆盖该方法实现自己的内容);覆盖该方法的时候必须要自己创建视图供 viewcontroller显示,或者调用[super loadView];


3、通知NSNotification

* 获取默认通知中心 :[NSNotificationCenter defaultCenter];

* 对某通知添加响应:addObserver: selector: name: object:;

* 关闭通知观察者:removeObserver;


  

标签:控制器,调用,视图,Controller,storyboard,方法,iOS7,属性
From: https://blog.51cto.com/u_8895844/6152838

相关文章

  • iOS7应用开发4、Foundation框架
    1、动态绑定:id类型的对象,表示指向未知类型对象的指针;指向对象的实际类型在运行时指定。在使用时,注意check该对象是否响应调用的方法(respondsToSelector)。可以将一个静态类型......
  • iOS7应用开发6:UINavigation, UITabbar控制器的多态性
    1、前期所实现的PlayingCard游戏,其ViewController只能适应PlayingCard这一种游戏规则。而将createDeck函数修改为返回一个nil后,整个ViewController与PlayingCard就没有关......
  • [用前必读]如何使用MyEclipse的工作台和透视图
    MyEclipsev2022.1.0正式版下载MyEclipse技术交流群:742336981欢迎一起进群讨论工作台(Workbench)指的是加载IDE时看到的内容,它通常包含一个透视图,透视图是相关视图和编辑......
  • LeetCode199.二叉树的右视图
    1.题目:给定一个二叉树的根节点root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例1:输入: [1,2,3,null,5,null,4]输出: [1,3,4]来源:力......
  • 【论文翻译】An optimization framework for designing robust cascade biquad feedba
    下载地址:AnoptimizationframeworkfordesigningrobustcascadebiquadfeedbackcontrollersonactivenoisecancellationheadphonesAbstract本文提出了一种直接......
  • django-视图
    请求HttpRequest对象常用request属性GET:数据类型时一个类似字典的对象,包含HTTPGET的所有参数get():返回字符串,多个值取出最后一个request.GET.get(......
  • passing JSON data to a Spring MVC controller
    Addthefollowingdependencies<dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId><version>1.9......
  • kube-controller-manager启动失败
    报错信息:Error:failedtostartcontainer"kube-controller-manager":Errorresponsefromdaemon:OCIruntimecreatefailed:container_linux.go:338:creatingne......
  • Spring MVC视图解析器:配置多个视图解析器的优先级
    [color=red]问题[/color]在SpringMVC应用程序中,我们经常需要应用一些视图解析器策略来解析视图名称。例如,联合使用三个视图解析器:InternalResourceViewResolver、Resourc......
  • SQL Server如何找出视图依赖的对象和视图嵌套层数
    场景:在SQLServer数据库的SQL优化中,我们有时候会需要找出某个视图的依赖对象,简单的视图倒是很容易一眼就找出依赖对象,一旦遇到一些复杂的视图,如果我们手动整理的话,就相当麻......