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

ios - 接收者没有标识符“***”的segue


                                            <p><p>我第一次遇到这个问题。我检查了堆栈溢出的类似问题,但没有一个解决方案可以解决我的问题,所以我有这个帖子。</p>

<p>到目前为止,我有两个 View<code>controllers</code>(比如说 A 和 B),我正在尝试将它们与名称为“toB”的 segue 连接起来。当我运行程序时,Xcode 告诉我 <code>Receiver(B) has no segue with identifier "toB"</code>.</p>

<p>我很确定 <code>storyboard</code> 中的 <code>identifier</code> 和代码中的拼写完全一样。并且segue的线已经连接了<code>A view controller</code>和<code>B view controller</code>。</p>

<p>但是两个 View <code>controllers</code>的<code>storyboard</code> ID是不同的。是不是有问题?</p>

<p>希望有人可以帮助我。提前致谢!</p>

<hr/>

<p><strong>解决方案</strong></p>

<p>感谢@Amit Shelgaonkar 的提示!就我而言,将 <code>performSegueWithIdentifier</code> 移动到 <code>viewDidAppear</code> 仍然不起作用,但将其移动到 <code>applicationWillEnterForeground</code> 可以解决问题! </p>

<p>我仍然不知道为什么它在我的情况下不起作用,因为当我尝试开发一个测试应用并将 <code>performSegueWithIdentifier</code> 放在 <code>viewDidAppear</code> 中时,它完美运行。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您在 <code>viewDidLoad</code> 中调用 <code>performSegueWithIdentifier:sender:</code>。您不能关闭尚未呈现的 <code>UIViewController</code>。 <code>viewDidLoad</code> 具有纯粹的内存管理功能,您可以将其用作(a 的一部分)构造函数。可行的方法是在 <code>viewDidAppear</code> 中启动 <code>segue</code>,但是我建议您在第一时间从您想要的 View 开始。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 接收者没有标识符“***”的segue,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/31241877/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/31241877/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 接收者没有标识符“***”的segue