关于tabBarViewController中子控制器view位置偏移的问题

如图,先简单介绍一下控制器直接的结构:

257C4BA2-2135-4840-B311-958BF21CF946.png
Simulator Screen Shot 2016年11月11日 16.55.01.png

tabBarViewController中包含4个navigationController,每个navigationController各自拥有自己的rootViewcontroller,当让其中任意一个rootViewcontroller present 一个控制器再dismiss 返回到tabBarViewController所在的页面后就会发生子控制器view的位移:

Simulator Screen Shot 2016年11月11日 17.19.48.png

困扰了很久,终于在找到了答案,原来我在重写tabBarViewController 的 viewWillAppear方法的时候并没有调用[super viewWillAppear];方法,所以会导致出现上面的问题.

还有发现
1.tabBarViewController的子控制器在使用push和pop的时候 只有两个子控制器的viewWillAppear和viewWillDisappear方法会被调用,并不会调用tabBarViewController的viewWillAppear和viewWillDisappear方法;

2.tabBarViewController的子控制器在使用present和dismiss的时候除了两个子控制器的viewWillAppear和viewWillDisappear方法会被调用外,tabBarViewController的viewWillAppear和viewWillDisappear方法也会被调用,并且会比调用present的那个子控制器先调用这两个方法;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容