我注意到大多数对消费者友好的 Android 和 iPhone 健身应用程序都有两种界面模式 - 在纵向模式下,用户可以获得更详细的信息,但当用户将设备切换到横向模式时,会添加一个全屏图形覆盖整个屏幕。
我对如何实现转换到不同的 View Controller 以响应 iPhone 上的设备旋转感兴趣。 我最初的想法是拦截 (willRotateToInterfaceOrientation 事件,然后获取应用委托(delegate)并添加一个全屏图形 View Controller 到窗口)。
有没有更好的方法将 iPhone 旋转转换为另一个 View Controller ?就像隐藏状态栏并在带有动画的横向模式下推送模态视图 Controller ?
Best Answer-推荐答案 strong>
首先问问自己是否真的需要一个单独的 View Controller 。一个 View Controller 可以轻松隐藏或取消隐藏图形。
如果此图需要自己的 View Controller ,那么您可以使用包含引用其自己的 View Controller 的图的容器 View 。这就是容器 View 的用途。
然后,“主” View Controller 将隐藏和取消隐藏容器 View 以响应旋转事件(并相应地对其进行布局等。)
如果您更喜欢在其 super View 中添加或删除容器 View (从“主” View Controller 的角度来看很可能是 self.view),那么就这样做而不是隐藏和取消隐藏。这可能是最合适的。
这种方法的好处在于,无论您处于何种导航结构,无论旋转的 View Controller 是被推送还是模态呈现,无论您是在标签栏驱动的应用程序还是单个 View 中,它都可以工作应用程序,无论您使用的是 Storyboard,还是与 IB 一起使用以及以编程方式等等。pp。
从应用程序的委托(delegate)中获取窗口实例没有任何问题。我只是不认为有必要这样做。与其他选择相比,我觉得相当复杂。
关于ios - iPhone如何显示不同的 View Controller 以响应设备旋转?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/16693310/
|