菜鸟教程小白 发表于 2022-12-13 15:00:48

objective-c - 从 UISplitViewController 呈现的 modalViewController 出现方向错误


                                            <p><p>我有一个 <code>UISplitViewController</code> 设置在我的应用程序的 rootView 中。当在我的左 ViewController 中调用 <code>viewDidLoad</code> 时,我会进行检查,然后使用以下内容呈现模态视图 Controller :</p>

<pre><code>SiteConfiguration *config = [ initWithStyle:UITableViewStyleGrouped];
config.firstLoad = YES;
UINavigationController *configNav = [ initWithRootViewController:config];
if () {
    configNav.modalPresentationStyle = UIModalPresentationFormSheet;
    configNav.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    [.splitViewController presentModalViewController:configNav animated:YES];
} else {
    ;
}
</code></pre>

<p>如果 iPad 在应用加载时处于横向模式,则 modalView 显示的方向不正确:</p>

<p> <img src="/image/ksFhx.jpg" alt="enter image description here"/> </p>

<p>我可以旋转 iPad 来解决这个问题,但为什么加载错误?我有 <code>shouldAutorotateToInterfaceOrientation:</code> 在我的 <code>SiteConfiguration</code> viewController 中返回 YES。这可能是什么原因造成的?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>请注意您选择展示模态 Controller 的位置。
我有一些自定义模态 Controller 的经验,并在 </p> 中设置模态 Controller 的方向(及其阴影!)

<pre><code> - (void)viewDidLoad:(BOOL)animated </code></pre>

<p>并不总是按预期运行。 </p>

<p>把你的代码(<code>presentModalViewController:configNav animated:YES</code>)放入</p>

<pre><code> - (void)viewDidAppear:(BOOL)animated</code> </pre>

<p>instead. (Do this as well with any code that sets a subviews frame or does any manipulation of layers, e.g. the shadow layer and shadow properties).</p>

<p>As far as I can tell, the rotation may not be apparent to subviews of the rotated view until after </p><pre><code> - (void)viewDidLoad:(BOOL)animated </code></pre>由于线程问题(一个线程可能会在主线程将旋转传递给 subview (和模态 Controller )之前开始绘制您的 subview 或模态 Controller 的 View )。比我有更多线程经验的人可能会对此有所了解。<p></p></p>
                                   
                                                <p style="font-size: 20px;">关于objective-c - 从 UISplitViewController 呈现的 modalViewController 出现方向错误,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/11568023/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/11568023/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: objective-c - 从 UISplitViewController 呈现的 modalViewController 出现方向错误