使用 UINavigationController 自动旋转
Posted
技术标签:
【中文标题】使用 UINavigationController 自动旋转【英文标题】:Autorotate with a UINavigationController 【发布时间】:2009-06-23 23:45:19 【问题描述】:我有点不清楚如何旋转 UINavigationController 上的视图。
我已经用我自己的一个覆盖了 UINavigationController 对象:
(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation return YES;
我在控制器上的堆栈上有一个视图,该视图是从带有两个视图的 xib 加载的。我想从纵向切换到横向。通常我会通过从视图本身的 nib 文件中更改视图来处理这个问题。我必须在导航控制器中实现旋转代码还是仅在我的视图代码中实现?
(void)willAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 持续时间:(NSTimeInterval)持续时间
willAnimate 代码是我习惯在视图本身中使用的代码,但我仍然没有看到视图被更改,我想可能是我需要访问 NavigationController 中的视图和更改它,甚至覆盖导航控制器中的相同方法并在那里切换我的视图。
有什么建议吗?我以前从未真正这样做过,只是发现 TabViewControllers 和 NavigationControllers 默认都是纵向模式。
【问题讨论】:
【参考方案1】:原来无法更改视图,因为我试图更改导航控制器上的 RootView。我通过放置我自己的伪根视图控制器来解决这个问题,该控制器永远不会出现在导航堆栈的根位置。我覆盖了一些导航控件来解决这个问题,因此功能将保持不变,并且我可以根据需要更改我想要的感知根视图。
可以在此链接中找到正确方向的开始:
http://starterstep.wordpress.com/2009/03/05/changing-a-uinavigationcontroller's-root-view-controller/
【讨论】:
以上是关于使用 UINavigationController 自动旋转的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationcontroller 中未使用的视图会发生啥?
使用 push segue 时 UINavigationController 是不是强制
UINavigationController - 使用 UIBlurEffect 清除背景
一起使用 UITabBarController 和 UINavigationController