菜鸟教程小白 发表于 2022-12-12 17:30:12

ios - 通过 topviewcontroller 在自定义类上设置委托(delegate)的简洁方法


                                            <p><p>我定义了一个类<code>NewViewController</code>,它显示了一个在应用程序中添加新项目的屏幕,它被包装在一个<code>UINavigationController</code> 中。我想在这个 <code>UIViewController</code> 上设置一个 <code>delegate</code>,我目前在 <code>prepareForSegue</code> 方法中这样做:</p>

<pre><code>UINavigationController *navController = segue.destinationViewController;
NewViewController *newViewController = (NewViewController *)navController.topViewController;
;
</code></pre>

<p>这行得通,但我觉得这并不优雅,也不是我应该这样做的方式。获得此结果的最佳方法是什么?</p>

<p>Edit:<code>NewViewController</code>中的<code>delegate</code>在<code>NewViewController</code>中的所有字段都填写完毕并提交后调用。目前,这是唯一来自 <code>NewViewController</code> 的 <code>delegated</code>。以模态方式显示 <code>NewViewController</code> 的 <code>UIViewController</code> 是设置为 <code>delegate</code> 的内容(在本例中为 self)。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我认为这种方法很好,尽管您可能需要进行更多的错误检查以防万一。如果这是一个命名的 segue,您可以检查 <code>segue.identifier</code> 以确保这是您期望的 ViewController 。我也会像这样检查类(class):</p>

<pre><code>if (])
{
    UINavigationController *navController = (UINavigationController *)segue.destinationViewController;
    if (])
    {
      NewViewController *newViewController = (NewViewController *)navController.topViewController;
      ;
    }
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 通过 topviewcontroller 在自定义类上设置委托(delegate)的简洁方法,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/20741619/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/20741619/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 通过 topviewcontroller 在自定义类上设置委托(delegate)的简洁方法