我有一个类似于模态视图控制器的东西,我需要显示在我的其他视图控制器上方。我没有使用常规的模态控制器功能(presentViewController:
和朋友),因为我需要更好地控制该过程。相反,我使用的是视图控制器包含功能(addChildViewController:
方法组)。
包含功能使代码相当简单。当我需要呈现“模态”视图控制器时,我将它作为子视图添加到视图控制器层次结构中,一切都按预期工作。一个小问题是常规视图控制器包装在导航控制器中。因此,我必须将模态控制器添加为导航控制器的子节点,否则它将被导航栏和工具栏覆盖。
现在的问题是调用addChildViewController:
导航控制器也会将新控制器设置为topViewController
,就好像控制器是使用常规pushViewController:
方法推送的一样。这意味着当模态控制器显示时,它下面的常规控制器不会收到外观和旋转回调。
这感觉像是一个错误,还是我错过了什么?