一尘不染

在Swift中使用shouldPerformSegueWithIdentifier()方法

swift

我正在尝试使用swift的shouldPerformSegueWithIdentifier()方法,但是它接受2个参数。这些是(标识符:String
!,发件人:AnyObject)

我的主要目标是在按故事板中的登录按钮时执行代码,并根据一系列检查返回TRUE或FALSE,这取决于是否提供了正确的用户名和密码。所以这是我的问题:

  1. 我应该使用什么作为标识符?Apple的文档解释说,标识符是一个字符串,用于标识触发的序列。因此,假设我的segue的名称为loginSegueProcess。如何在分配给UIView的ViewController中使用它?关键是我在代码中声明了方法,并且要求我同时指定两个参数(标识符和发送者)。我如何提供论点?

  2. 这种方法真的可以满足我的需求吗?我的意思是,如果它确实会在单击“登录”按钮时确实停止segue转换,并且取决于是否提供了正确的凭据,它将带您进入下一个视图,或者它将显示,例如AlertView。

最后,我以为performSegueWithIdentifier(args)方法也会对我有帮助。有人知道他们之间的区别吗?

在此先多谢!


阅读 412

收藏
2020-07-07

共1个答案

一尘不染

您可能无法shouldPerformSegueWithIdentifier()自己调用
方法。在过渡到下一个视图之前将自动调用它,从而有机会确定是否应进行过渡。您可以有条件地从此方法返回是/否。如果您的情况不涉及任何服务器调用,那么简单的逻辑检查此方法就足够了。

performSegueWithIdentifier()用于以编程方式调用segue。考虑到网络呼叫的上述情况,shouldPerformSegueWithIdentifier()由于身份验证正在进行,您可能从一开始就返回NO
。从服务器获得成功后的响应后,可以调用segue执行performSegueWithIdentifier(此处的标识符是您在情节提要中提供的ID)。在确定您应该从之前返回YES之前shouldPerformSegueWithIdentifier()

现在是第三种情况,如果您的segue是通过登录按钮进行连接的(您必须通过控制器本身进行连接)。shouldPerformSegueWithIdentifier不再需要检查。performSegueWithIdentifier()从服务器获得成功响应后,您就可以调用segue了。

2020-07-07