美文网首页iOS学习笔记
iOS 视图层级及事件传导chain的理解

iOS 视图层级及事件传导chain的理解

作者: 飞到哪 | 来源:发表于2017-08-17 23:00 被阅读0次

在看项目组代码时发现,在使用UIViewController的时候,很多情况下直接将controller的view添加到view上面,不像传统的添加子视图类——addChildViewController。对于这种情况下视图关系感觉有点混乱,之前看的资料一般可以将Controller作为子controller添加到视图当中,然后再把view加进来。但这次发现并没有使用子视图,只是单纯的将view添加进来。这种用法并不知道规不规范,对于其事件的传传导也比较好奇,于是写了一个比较简单的demo,仿制项目的使用场景。

视图层次.jpg

UINavigationController当中有一个UIViewControllerA作为根视图器,UINavigationController其中会push VCB。但UINavigationController并不是作为子Controller添加到UIViewControllerXXX当中,而是将UINavigationController.view添加进来而已。这就导致了事件传送的进制比较奇怪。为了测试这种使用方法,特地写了一个demo。如下图所示:

屏幕快照 2017-08-17 下午10.54.36.png

将NavigationViewContrller的view直接添加到view当中。然后在NavigationControler当中push视图。

在测试的过程中也发现了几个要注意的地方

  • 刚开始的时候发现,push跟exit按钮点了没有反应。后来发现原来Controller被释放了,因为只是view被添加到了视图当中,Controller没有被添加,其是一个局部变量,导致其在之后立即被释放,当触发按钮事件时,自然就没有反应了。

下面是demo的地址:https://github.com/tornador92/TestSubView

相关文章

网友评论

    本文标题:iOS 视图层级及事件传导chain的理解

    本文链接:https://www.haomeiwen.com/subject/jiygrxtx.html