gpt4 book ai didi

c# - 检查验证并执行 segue 与应该执行 segue

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:05:54 27 4
gpt4 key购买 nike

我正在 Xamarin Studio 中开发一个应用程序(所以它是 C#),它有一个包含多个 TextField 的表单,我想在 segue 之前验证整个屏幕> 到下一个屏幕执行。单击按钮时,它正在使用以下代码:

saveButton.Clicked += delegate(object sender, EventArgs e) {

if(ValidateScreen()){
PerformSegue("nextScreen", this);
}
};

现在我想知道这是最好的方法还是我应该使用 ShouldPerformSegue,像这样:

saveButton.Clicked += (object sender, EventArgs e) => ShouldPerformSegue ("nextScreen", this);

ShouldPerformSegue 方法:

public override bool ShouldPerformSegue (string segueIdentifier, NSObject sender)
{
bool validScreen = ValidateScreen ();
bool result = true;
if (!validScreen) {
result = false;
}
return result;
}

那么最好的方法是什么?如果我当前的代码也能正常工作,为什么我要在 ShouldPerformSegue 中使用更多代码,但为什么会有 ShouldPerformSegue 方法?

(PS。ShouldPerformSegue 还没有工作,有人知道为什么吗?不是主要问题..)

最佳答案

在这种情况下可能是 ShouldPerformSegue 的文档有点模糊。

当您想说中止通过 Storyboard 调用的转场时,您通常希望覆盖并使用ShouldPerformSegue

enter image description here

在上图的项目中,我们通过 Storyboard 中的推送 segue 获得了 Button 导致标题为“Second”的 VC。现在我们可以在代码中使用 ShouldPerformSegue 函数来控制 Storyboard中的这个 segue 何时应该通过从该函数返回 true/false 来实际执行到“第二”VC 的转换。

如果您在该 VC 的 Storyboard中有多个 segue,您也可能会在这些点使用 segue 标识符来识别当前正在处理的 segue(前提是您在 Storyboard中为 segue 设置了标识符)。

在您的情况下,您正在从代码中调用 PerformSegue("nextScreen", this);,因此本质上您会知道何时应该实际调用它(使用您的 ValidateScreen() )。因此,您可以安全地忽略覆盖并按照最初的方式继续操作。

关于c# - 检查验证并执行 segue 与应该执行 segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23405147/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com