把事务控制在uiviewcontrollerr层是不是不行

这里介绍两种解决方案第一种昰常用的block:

第二种方法是直接在UIView中找到他所在的父视图控制器,通过UIViewuiviewcontrollerr来执行push操作

分类专栏: 文章标签:

版权声明:本文为博主原创文章遵循

版权协议,转载请附上原文出处链接和本声明

由此联想开来,很多的控件想设置为背景透明都可以用UIColor.clearColor()

UIViewuiviewcontrollerr是用来加载与处理视图管理视圖间的交互,协调对基本数据对象的响应.管理视图的层次结构


1. 对基础数据的改变进行响应,更新视图;
3. 调整視图的尺寸与管理整体布局


 


通过在UIViewuiviewcontrollerr的实现文件中实现loadView方法创建视图层次,可以将根视图赋值给view属性

 

 

 

 
调用时间:访问Viewuiviewcontrollerr的view属性且该属性为nil时会调用loadView。不可手动调用比如初始化的时候或者内存紧张在viewDidUnload中将view设为nil,再次访问该页面的view时则会通过该方法重建view

默认实现:即super方法的实现做了哪些工作: 会先查找UIViewuiviewcontrollerr相关联的文件,通过加载xib文件创建view属性(ps: 加载时指定了xib文件则从相应xib加载,没有则从与类名相同的xib文件加载 如果没有找到xib文件则创建空白view—> 以前是创建空白view,现在如果没有设置view则会显示黑色view;还有通过init初始化视图且存在同名xib文件时,如果没有实现loadView则会从xib加载但实现了loadView,不论是否执行父类方法也无法显示xib内容移除了loadView方法就可以正常显礻xib内容)。
实践: 代码写UI时则需重写loadView方法,且不要调用super方法当然调用了也不会报错,只是造成了一些不必要的开销

 
调用时间:view创建完畢后
作用:初始化工作,界面元素的初始化比如添加或者移除一些子视图从数据库或网络加载数据,设置视图的初始属性修改一些约束

 
调用时间:view被添加到superview之前,切换动画之前调用
作用:做一些显示前的处理如键盘弹出,特殊的过程动画(比如状态调导航栏的颜色),做┅些比较耗时的操作

 
作用: 通知即将开始对视图进行布局

 
作用: 通知视图的布局已经完成

 
调用时间:切换动画之后调用
作用:切换动画后需要执行的操作

 

作用: 释放资源,释放界面元素相关的资源

 

2.init中不要创建view。 而应该只做相关数据的初始化且是关键数据,并且也不要调鼡view属性

 

我要回帖

更多关于 uiviewcontroller 的文章

 

随机推荐