菜鸟教程小白 发表于 2022-12-13 02:42:32

ios - iPhone如何显示不同的 View Controller 以响应设备旋转?


                                            <p><p>我注意到大多数对消费者友好的 Android 和 iPhone 健身应用程序都有两种界面模式 - 在纵向模式下,用户可以获得更详细的信息,但当用户将设备切换到横向模式时,会添加一个全屏图形覆盖整个屏幕。</p>

<p><strong>我对如何实现转换到不同的 ViewController 以响应 iPhone 上的设备旋转感兴趣。</strong> 我最初的想法是拦截 (willRotateToInterfaceOrientation 事件,然后获取应用委托(delegate)并添加一个全屏图形 ViewController 到窗口)。 </p>

<p>有没有更好的方法将 iPhone 旋转转换为另一个 ViewController ?就像隐藏状态栏并在带有动画的横向模式下推送模态视图 Controller ?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>首先问问自己是否真的需要一个单独的 ViewController 。一个 ViewController 可以轻松隐藏或取消隐藏图形。
如果此图需要自己的 ViewController ,那么您可以使用包含引用其自己的 ViewController 的图的容器 View 。这就是容器 View 的用途。
然后,“主” ViewController 将隐藏和取消隐藏容器 View 以响应旋转事件(并相应地对其进行布局等。)</p>

<p>如果您更喜欢在其 superView 中添加或删除容器 View (从“主” ViewController 的角度来看很可能是 self.view),那么就这样做而不是隐藏和取消隐藏。这可能是最合适的。 </p>

<p>这种方法的好处在于,无论您处于何种导航结构,无论旋转的 ViewController 是被推送还是模态呈现,无论您是在标签栏驱动的应用程序还是单个 View 中,它都可以工作应用程序,无论您使用的是 Storyboard,还是与 IB 一起使用以及以编程方式等等。pp。</p>

<p>从应用程序的委托(delegate)中获取窗口实例没有任何问题。我只是不认为有必要这样做。与其他选择相比,我觉得相当复杂。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - iPhone如何显示不同的 ViewController 以响应设备旋转?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/16693310/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/16693310/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - iPhone如何显示不同的 View Controller 以响应设备旋转?