美文网首页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