菜鸟教程小白 发表于 2022-12-12 09:57:33

ios - 在 iOS 9 上关闭 segue 创建的 Popover


                                            <p><p>Stack Overflow 上有很多关于此的问题和答案,但它们仅适用于 iOS 8 及之前的版本。</p>

<p>iOS 9 弃用了很多东西,所以关于 SO 的答案不再有效。</p>

<p>也就是说,我通过执行这样的 segue 来呈现一个弹出框</p>

<pre><code>;
</code></pre>

<p>这个 segue 在当前 viewController 和 popover 使用的 viewController 之间创建。不涉及任何按钮。弹出框被锚定到一个 View 。</p>

<p>问题在于 <code>prepareForSegue:identifier</code></p>

<pre><code>
</code></pre>

<p>是一个<code>UIViewController</code>和</p>

<pre><code>[ popoverPresentationController]
</code></pre>

<p>是新的<code>UIPopoverPresentationController</code>,这个对象不再提供dismiss api。</p>

<p>相反,我们应该使用</p>

<pre><code>;
</code></pre>

<p>关闭弹出框,但这对我没有影响。</p>

<p>我的情况是这样的:我有一个带有文本字段的弹出框。如果用户隐藏键盘,我想关闭弹出框。</p>

<p>所以我这样做了:</p>

<pre><code>[ addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
</code></pre>

<p>然后</p>

<pre><code>- (void)keyboardWillHide:(NSNotification *)notification {
;
}
</code></pre>

<p>但这根本没有效果。</p>

<p>我还尝试在 popover viewController 中创建一个 unwind segue 并从呈现 ViewController 中调用它,但这会使应用程序崩溃。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>刚刚试了一下,似乎一切正常。</p>

<ul>
<li>您的 ViewController 层次结构(导航 Controller 等)是什么?</li>
<li>您是否在显示弹出框的同一 ViewController 上正确调用 <code>dismissViewControllerAnimated:completion:</code>?</li>
<li>确保 subviewController 和导航 Controller 之间没有混淆。</li>
<li>您也可以记录popover view controller的<code>presentingViewController</code>来检查。</li>
</ul></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 iOS 9 上关闭 segue 创建的 Popover,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/34176715/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/34176715/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 iOS 9 上关闭 segue 创建的 Popover