菜鸟教程小白 发表于 2022-12-12 22:48:12

iOS6 方向


                                            <p><p>我有一个关于 iOS 6 Orientation 的问题。这是我的文件
<a href="https://www.dropbox.com/s/f8q9tghdutge2nu/Orientations_iOS6.zip" rel="noreferrer noopener nofollow">https://www.dropbox.com/s/f8q9tghdutge2nu/Orientations_iOS6.zip</a> </p>

<p>在这个示例代码中,我想让 <code>MasterViewController</code> 只有一个 Portrait Orientation 而 <code>DetailViewController</code> 有一个 Portrait Orientation,Landscape Orientation。</p>

<p>我知道 iOS 6 的方向是由最上面的 Controller 控制的。</p>

<p>所以我自定义了一个<code>UINavigationController(CustomNavigationController)</code>,在该类中设置supportedInterfaceOrientations 和shouldAutorotate。</p>

<pre><code>-(NSUInteger)supportedInterfaceOrientations{
    if([ isKindOfClass:]){
      return UIInterfaceOrientationMaskAllButUpsideDown;
    }else{
      return UIInterfaceOrientationMaskPortrait;
    }
}

-(BOOL)shouldAutorotate
{
    return YES;
}
</code></pre>

<p>除了<code>DetailViewController</code>在Landscape Orientation按下返回按钮时,一切都很好,<code>MasterViewController</code>将显示Landscape Orientation。</p>

<p>我可以让 <code>MasterViewController</code> 总是显示 Portrait Orientation 并且 <code>DetailViewController</code> 可以有多个方向吗?</p>

<p>谢谢!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>谢谢!布伦南,<br/>
我还在我的博客中收集了其他方法。<br/>
<a href="http://blog.hanpo.tw/2012/09/ios-60-orientation.html" rel="noreferrer noopener nofollow">http://blog.hanpo.tw/2012/09/ios-60-orientation.html</a> </p>

<p>这是另外两种方式。</p>

<p><strong>1.向 UINavigationController 添加类别</strong></p>

<pre><code>    @implementation UINavigationController (Rotation_IOS6)

    -(BOOL)shouldAutorotate
    {
      return [ shouldAutorotate];
    }

    -(NSUInteger)supportedInterfaceOrientations
    {
      return [ supportedInterfaceOrientations];
    }

    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
    {
      return [ preferredInterfaceOrientationForPresentation];
    }

    @end
</code></pre>

<p><strong>2.Swap方法实现(由spoletto制作)</strong> </p>

<p> <a href="https://gist.github.com/3725118" rel="noreferrer noopener nofollow">https://gist.github.com/3725118</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS6 方向,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/12546057/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/12546057/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS6 方向