【问题标题】:How do I use UI button to call a new controller in swift?如何使用 UI 按钮快速调用新控制器?
【发布时间】:2016-10-25 00:21:47
【问题描述】:

我有一个按钮实例,还有两个用于用户名和密码的文本字段。这是一个测试应用程序,因此我有硬编码的用户名和密码,并将字符串传递给它

@IBOutlet weak var usernameTextfield: UITextField!

@IBOutlet weak var passwordTextfield: UITextField!

let username = "itishim"
let password = "password"

我刚刚创建了一个新的视图控制器(viewcontroller2),将它拖到故事板并控制拖动主视图控制器到新的视图控制器。如果我硬编码的密码为真,我的目标是使用该按钮连接到新的视图控制器。

    @IBAction func button(sender: AnyObject) {


    if usernameTextfield.text == username && passwordTextfield.text == password {


    self.performSegueWithIdentifier("nextView", sender: self)
    } else {
            print("nope")

即使我有正确的用户名和密码,我仍然不断收到“[UIViewController button:]: unrecognized selector sent to instance 0x7f8731515400”。我是 swift 的新手,如果我得到任何帮助,我将不胜感激。谢谢!

【问题讨论】:

  • 听起来您的 IBAction 没有通过 Touch Up Inside 正确连接到情节提要中的按钮。仔细检查该连接,甚至将其断开并重新连接,然后重试。让我知道这是否有效。
  • 我刚刚通过连接检查器断开连接并重新连接,但它没有工作。你是这个意思吗?
  • 它崩溃了,因为它无法识别发送到按钮的方法。不看项目就很难诊断故事板问题。如果您想将其压缩并上传到某个地方,我会快速查看并告诉您问题所在。
  • 能否请您右键单击您的元素您有一个没有链接到任何东西的额外出口,请发布屏幕截图以获取更多信息以找出您的问题。
  • 我不知道如何在评论部分上传屏幕截图。但这里是项目压缩文件的链接。 dropbox.com/s/z3winf5hpxrc0eu/cleepcam.zip?dl=0

标签: ios swift xcode uibutton


【解决方案1】:

我检查了你的 zip 文件。即使没有segue,它也会崩溃。我建议你建立一个新项目。并执行以下操作。

  1. 拖动 viewController 并使用新的 SecondViewController.swift 设置它
  2. 转到 storyBoard 并从 firstViewController 中通过从顶部的第一个(黄色)按钮拖动 secondViewCONtroller 并单击 show 来转至 secondviewController。
  3. 添加您的文本字段和按钮
  4. 在 viewCONtroller 中添加按钮操作。
  5. 单击情节提要中的转场并将其命名为“nextView”

然后是按钮功能

 @IBAction func ButtonFuntion(_ sender: AnyObject) {
        if usernameTextfield.text == username && passwordTextField.text == password{
            performSegue(withIdentifier: "nextView", sender: nil)
        }
    }

【讨论】:

  • 我又试了一次,但还是没有运气。唯一的区别在于 ButtonFunction 中的参数
  • 我刚刚升级了我的 Xcode 并重新启动它,一切似乎都很好。感谢大家的支持。
猜你喜欢
  • 2020-08-27
  • 2021-12-04
  • 1970-01-01
  • 2017-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多