苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4266|回复: 7

[新手开发之旅] iOS新手开发之旅-UIViewController解析

[复制链接]
发表于 2018-11-30 16:43:18 | 显示全部楼层 |阅读模式
本帖最后由 竹林风 于 2018-11-30 17:58 编辑

iOS的整个UI开发的核心思想也是MVC的架构,从UIViewController的命名就可以看出它在MVC中所扮演的角色就是Controller。Controller作为整个UI视图的控制器,对于用户的输入做出逻辑处理,例如用户点击某个按钮应该执行什么操作等;View角色只负责显示视图,view的这部分就是我们在nib或者storyboard设计的UI了。Model也就是我们的数据模型,例如从Core data中加载的实体类等等。这整个架构分工清晰,降低了代码的耦合度。

UIViewController与UIWindow、UIView的关系如下:


2.jpg


UIWindow在现实时会设置一个root controller,然后会将该root controller的root view设置为该window的root view,root view又管理着整个视图的层次结构,这样就构建起了用户界面,并且相互之间耦合性较低。


按照官方的定义,View Controller为iOS提供了基础的视图管理模型,也就是它是负责管理视图的,管理视图的层级、大小、内容、交互等。iOS的SDK中提供很多原生ViewController,以支持标准的用户界面,例如表视图控制器(UITableViewController)、导航控制器(UINavigationController)、标签栏控制器(UITabbarController)和iPad专有的UISplitViewController等。

按结构可以对iOS的所有ViewController分成两类:


  • 主要用于展示内容的ViewController,这种ViewController主要用于为用户展示内容,并与用户交互,如UITableViewController,UIViewController
  • 用于控制和显示其他ViewController的ViewController。这种ViewController一般都是一个ViewController的容器,例如UINavigationController,UITabbarController,它们都有一个属性:viewControllers,将所有要管理的View Controller添加到该数组就就行了,如图1。其中UINavigationController表示一种Stack式结构,push一个ViewController或pop一次,当前ViewController的导航栏上会显示上一个ViewController的Bar Button,点击该bar button可以返回上一个View Controller。而UITabbarController表示一个带有底部栏的视图控制器,底部栏按钮的个数就是ViewController的个数,各个ViewController是并列的,如图2。

            IMG_4746.PNG       图1       IMG_4747.PNG 图2

UIViewController的生命周期


    ViewController生命周期会经历初始化、加载视图、销毁视图、生命结束等过程。

1)init方法

      初始化ViewController本身。

2)loadView方法

      当view需要被展示而它却是nil时,viewController会调用该方法,如果代码构建View的话需要重写此方法。

3)viewDidLoad方法

      执行完loadView后继续执行viewDidLoad,loadView时还没有view,而viewDidLoad时view已经创建好了。

4)viewDidUnload方法

     当系统内存吃紧的时候会调用该方法。

5)dealloc

      释放其他资源或内存。

  下一篇  
标签栏控制器UITabBarController





1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2018-11-30 16:44:05 | 显示全部楼层
强烈支持楼主ing……
发表于 2018-11-30 16:47:08 | 显示全部楼层
iOS大神啊 ,跟着你好好学学
发表于 2018-11-30 17:06:11 | 显示全部楼层
强烈支持楼主ing……
发表于 2018-11-30 17:33:11 | 显示全部楼层
强烈支持楼主ing……
发表于 2018-12-1 10:36:55 | 显示全部楼层
  太给力了
发表于 2018-12-4 09:30:39 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-4 09:31:02 | 显示全部楼层
楼主很用功哦, 努力学习中
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-27 15:10

© 2014-2021

快速回复 返回顶部 返回列表