通过两次调用协议/代理数据传递进行segue

时间:2018-07-14 20:22:10

标签: ios uitableview segue

我想在segue之前从tableViewCell设置一些数据。在我的表扩展名中,我重载了didSelectRowAt来设置该数据。这是基于我读过的以下建议来触发segue的建议:

webview

我从情节提要中的表行选择操作中触发的segue正在触发,并且执行流已到达此控制器的为以下任务做的准备 之前 didSelectRowAt 正在射击。结果是,我的 performSegue (以及之前进行的设置工作)是在初次尝试后处理的,看起来目标视图控制器已快速连续加载两次-第二个是正确。

我想知道如何定义segue,但是将其从情节提要上的选择动作中删除。

ps:我知道 shouldPerformSegue 可用于中止首先出现的自动程序。.但似乎最好不必先中止它。 / p>

2 个答案:

答案 0 :(得分:1)

将segue附加到单元格选择操作时,导航会从附件进行两次导航,一次导航是在performSegue中的didSelectRowAt代码中进行的,因此您需要将segue附加到VC本身

答案 1 :(得分:0)

您的segue很可能直接附加到情节提要上的tableViewCell。当您将它附加到这样的单元格上时,Xcode本质上就是将 performSegue 附加到该单元格上的 didSelectRowAt 方法。

要解决此问题,您将希望segue来自视图控制器本身。这将定义序列,而不将其附加到任何动作。然后,您将可以通过编程方式调用它。