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

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

关于tabBarViewController中子控制器view位置偏移的问题_第1张图片
257C4BA2-2135-4840-B311-958BF21CF946.png
关于tabBarViewController中子控制器view位置偏移的问题_第2张图片
Simulator Screen Shot 2016年11月11日 16.55.01.png

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

关于tabBarViewController中子控制器view位置偏移的问题_第3张图片
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的那个子控制器先调用这两个方法;

你可能感兴趣的:(关于tabBarViewController中子控制器view位置偏移的问题)