C# 检查验证并执行segue vs应执行segue
我正在Xamarin Studio中开发一个应用程序(所以它是C#),它有一个包含多个C# 检查验证并执行segue vs应执行segue,c#,ios,xamarin.ios,segue,C#,Ios,Xamarin.ios,Segue,我正在Xamarin Studio中开发一个应用程序(所以它是C#),它有一个包含多个文本字段的表单,我想在执行到下一个屏幕的序列之前验证整个屏幕。单击按钮时,它正在使用以下代码: saveButton.Clicked += delegate(object sender, EventArgs e) { if(ValidateScreen()){ PerformSegue("nextScreen", this); } }; 现在我想知道这是否是最好的方法,还是应
文本字段的表单,我想在执行到下一个屏幕的序列之前验证整个屏幕。单击按钮时,它正在使用以下代码:
saveButton.Clicked += delegate(object sender, EventArgs e) {
if(ValidateScreen()){
PerformSegue("nextScreen", this);
}
};
现在我想知道这是否是最好的方法,还是应该使用ShouldPerformSegue
,类似这样:
saveButton.Clicked += (object sender, EventArgs e) => ShouldPerformSegue ("nextScreen", this);
而应执行segue
方法:
public override bool ShouldPerformSegue (string segueIdentifier, NSObject sender)
{
bool validScreen = ValidateScreen ();
bool result = true;
if (!validScreen) {
result = false;
}
return result;
}
那么最好的方法是什么呢?如果我当前的代码也正常工作,为什么我会在ShouldPerformSegue
中使用更多的代码,但是为什么会有ShouldPerformSegue
方法呢
(顺便说一句,ShouldPerformSegue
还没开始工作,有人知道为什么吗?不是主要问题.)
{
返回是/否;
}
您可以使用upper方法验证您的序列,如果所有验证都正确,只需返回YES,否则您可以返回NO.在这种情况下,可能的文档有点模糊
当您想说中止通过故事板调用的序列时,通常需要覆盖并使用ShouldPerformSegue
在上图的项目中,我们通过情节提要中的一个按钮,获得了名为“Second”的VC的按钮。现在,我们可以在代码中使用ShouldPerformSegue
函数,通过从该函数返回true/false来控制故事板中的该段何时实际执行到“第二个”VC的转换
如果您从该VC的故事板中有多个segue,那么您还可能在这些点上使用segue标识符来标识当前正在处理的segue(前提是您在故事板中为segue设置了一个标识符)
在您的例子中,您正在调用performsgue(“nextScreen”,this)代码>源于代码,因此本质上您应该知道何时应该实际调用它(使用ValidateScreen()
)。因此,您可以安全地忽略覆盖,继续您最初的操作。这是Objective-C如果我是正确的,我应该更清楚地提到它,而不仅仅是C
标记。我正在使用Xamarin Studio,所以它都在C#
中。但是如果我尝试返回YES代码>我收到一个错误:在当前上下文中不存在
。
-(BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender