繁体   English   中英

查看控制器层次结构和设备方向更改

[英]view controller hierarchy and device orientation changes

当方向发生变化并随后将更改通知视图控制器时,整个根视图及其所有子视图是否都收到这些通知? 我已经创建了一个根视图和该根视图的子视图。 子视图的控制器(以及此层次结构中子视图的任何控制器)是否接收到由于设备方向更改而引起的所有旋转处理?

我问,因为嵌套在此层次结构中的是UISplitViewController的视图,并且我怀疑它没有收到有关设备方向更改的通知。 即,我的视图层次结构中基本上有A-> B-> C之类的东西,其中C是UISplitViewController的视图。

当方向发生变化时,仅窗口的第一个视图将与其整个层次结构一起旋转。 就viewControllers而言,第一个视图的viewController将获取方向更改事件(以及viewWill / DidAppear事件),并由此产生所有viewControllers。 生成是指使用uitabbarViewController的选项卡显示或添加到导航控制器或以模态显示的Viewcontroller。 换句话说,如果您在层次结构中的某个位置将视图控制器的视图手动添加到了窗口或其他视图,则该视图控制器将不会获得任何事件。

看到这个: 为什么viewDidAppear没有被触发? 方向改变也会发生同样的事情

因此,有两种可能的原因:

  • 您的uisplitviewController的视图或其任何父视图被手动添加到视图层次结构中,而不是推送视图控制器(视图旋转但不接收事件)
  • 您将视图添加为窗口的第二个子视图(视图完全不会旋转)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM