【问题标题】:Swift: Navigate to new ViewController using buttonSwift:使用按钮导航到新的 ViewController
【发布时间】:2014-11-23 22:04:55
【问题描述】:

我有一个单视图应用程序,它连接以解析和验证用户登录信息并更新 UILabel 说“是的,您已成功登录” - 现在我希望它导航到一个新视图(这将是应用程序的主要部分)。

我已将一个新的视图控制器拖到情节提要上,然后按住 Ctrl 并拖动按钮并使用 show 将其链接到新控制器。但是,当我加载应用程序并单击按钮时,它会直接进入新视图。只有当 if-else 语句的正确部分被触发时,我才需要它去那里。

这有意义吗?感谢您的帮助。非常感激。

编辑

if 语句是:

if usrEntered != "" && pwdEntered != "" {
        PFUser.logInWithUsernameInBackground(usrEntered, password:pwdEntered) {
            (user: PFUser!, error: NSError!) -> Void in
            if user != nil {
                self.messageLabel.text = "You have logged in";
            } else {
                self.messageLabel.text = "You are not registered";
            }
        }
    }

它位于 ViewController.swift 文件中

【问题讨论】:

  • 你的 if-else 语句是什么,放在哪里?
  • @MattyAyOh 添加到原始问题
  • 位即:self.messageLabel.text = "你已登录"; - 我希望它重定向到新视图
  • Xcode 6.1 button with segue 的可能重复项
  • 这个 if 语句什么时候被命中?它存在于您的视图控制器实现中的什么方法?如果您创建一个新项目,请在界面构建器中添加另一个视图控制器,将按钮添加到根视图控制器,并将其绑定到 show 新视图控制器 - 它可以工作 一定是发生了其他事情,迫使您要显示的新视图控制器...

标签: ios swift uiviewcontroller


【解决方案1】:

首先,正如我在this answer 中解释的那样,您需要将 segue 从整个 UIViewController 拖到下一个 UIViewController,即,您不应该专门将 UIButton(或任何 IBOutlet)连接到下一个 UIViewController,如果转换的条件:

您还需要为 segue 分配一个标识符。为此,您可以选择 segue 箭头,然后在右侧面板中输入标识符:

然后要执行实际的转场,请在条件中使用 performSegueWithIdentifier 函数,如下所示:

if user != nil {
    self.messageLabel.text = "You have logged in";
    self.performSegueWithIdentifier("segueIdentifier", sender: self)
} else {
    self.messageLabel.text = "You are not registered";
}

其中“segueIdentifier”是您在情节提要中分配给您的 segue 的标识符。

【讨论】:

  • 你能告诉我为什么新的 viewController 没有 .swift 文件让代码在视图中运行吗?
  • 什么意思?当你创建一个新的视图控制器时,你需要将它创建为一个 swift 或 obj-c 文件......所以让它成为一个 swift 文件......
  • 是的,我能做到。但是如何将新文件分配给新视图?
  • @DannieCoderBoi 抱歉,现在没有时间,但这里是链接视图控制器的方法:stackoverflow.com/a/19370389/2274694
  • 没有转场;老实说,我不明白为什么 Android 需要 2 秒才能在 xcode 中学习 20 小时。
猜你喜欢
  • 1970-01-01
  • 2018-01-16
  • 1970-01-01
  • 2021-06-29
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
  • 2022-12-05
  • 1970-01-01
相关资源
最近更新 更多