当前位置: 首页 > 面试题库 >

在Swift中使用shouldPerformSegueWithIdentifier()方法

郝峰
2023-03-14
问题内容

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

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

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

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

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

在此先多谢!


问题答案:

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

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

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



 类似资料:
  • 问题内容: 我想在Swift 3.0中使用生成随机字节。这是我在Swift 2.2中所做的 在Swift 3中,我尝试这样做,因为我知道unsafemutablebytes的概念现在有所不同,但是它不允许我返回。如果我评论退货部分,它仍然会说 有谁知道如何解决这一问题? 谢谢 问题答案: 您已经关闭了,但是内部的封闭是从封闭而不是外部函数返回的。因此,仅应在闭包中调用该方法,并将结果传递回去。 对

  • 问题内容: 我正在尝试在Swift / Xcode6中使用UITextFieldDelegate,并且正在为应该使用stringByReplacingCharactersInRange的方式而苦苦挣扎。编译器错误为“无法将表达式的类型“字符串”转换为类型“ $ T8”。 Xcode 6 Beta 5的更新:问题是shouldChangeCharactersInRange提供了一个NSRange对象

  • 问题内容: 我正在尝试学习一些Swift lang,并且想知道如何将以下Objective-C转换为Swift: 更具体地说,我需要知道如何在新语法中使用。 问题答案: 正确的Swift运算符是: 当然,如果您还需要将视图分配给新的常量,那么语法就是您的孩子,就像Kevin提到的那样。但是,如果您不需要该值而只需要检查类型,则应使用运算符。

  • 问题内容: 在这种情况下,永远不会调用timerFunc()。我想念什么? 问题答案: 您可以创建一个计划的计时器,该计时器自动将其自身添加到运行循环并开始触发: 迅捷2 斯威夫特3,4,5 或者,您可以保留当前代码,并在准备就绪时将计时器添加到runloop中: 迅捷2 斯威夫特3,4,5

  • 问题内容: 我在Swift中有一个桥接函数,在C中其参数之一是。在Swift中,这会生成一个。我设法通过调用来尊重指针(有更好的方法吗?)。但是,我在接下来的2层中苦苦挣扎:的数组及其/ 成员。 在C语言中 在Swift中,第一个奇怪的事情是它不允许我访问的元素,但是当我将其作为属性访问时非常高兴。换句话说,这有效并且甚至具有正确的数据(对于我的第一位成员来说)… 其次,让我打印下标,但值始终是

  • 如果你的应用与 Web 应用通信,从服务器返回的信息经常是 JSON 格式。你可以使用 Foundation 框架里的 JSONSerialization 类来转换 JSON 为 Swift 的数据类型,比如 Dictionary 、 Array 、 String 以及 Bool 。总之,由于你不能确定应用接收的 JSON 的结构体或者值,可以通过挑战来正确地反序列化模型对象。这篇文章描述了几种你