首页 > 解决方案 > 为什么我以前的 viewController 中的变量不会显示在我的 labelText 中

问题描述

我是 Swift/Xcode 的新手,因为我知道其他编程语言,所以我有以前的知识,我试图在我的视图中将 textLabel 设置为:

emailLabel.text = "What's your email, " + firstName + "?"

这显示了文本的“你的电子邮件是什么”部分,但没有显示 firstName 变量。所以我尝试了这个:

emailLabel.text = "What's your email, \(firstName)?"

那也不起作用,我知道变量中有正确的值,因为我在运行应用程序时打印出变量。我不知道为什么它没有在 textField 中显示变量而只显示文本的第一部分。有什么帮助吗?

是的,textField 也足够大,可以容纳一个很长的变量,所以并不是没有足够的空间来显示它。我什至可以使用以下代码在 textField 中显示变量:

emailLabel.text = firstName

果然,它显示了正确的变量。

我正在从前一个视图控制器执行 Segue 以获取用户的名字,然后在第二个视图控制器中应用程序要求他们输入密码。我通过 segue 发送 firstName 变量,然后像往常一样将该变量存储在我的视图控制器中,当我打印出值并返回用户输入时,我知道该变量正在到达第二个视图控制器:

import UIKit

class SignupEmailViewController: UIViewController, UITextFieldDelegate {
    @IBOutlet weak var emailInputField: UITextField!
    @IBOutlet weak var emailLabel: UITextView!

    var firstName = ""
    var surname = ""

    override func viewDidLoad() {
        super.viewDidLoad()

        self.emailInputField.delegate = self
        emailInputField.underlined()

        print(firstName)
        let emailText = "What’s your email, " + firstName + "?"
        emailLabel.text = emailText
    }

没有任何效果。

整个代码:

import UIKit

class SignupEmailViewController: UIViewController, UITextFieldDelegate {
    @IBOutlet weak var emailInputField: UITextField!
    @IBOutlet weak var emailLabel: UITextView!

    var firstName = ""
    var surname = ""

    override func viewDidLoad() {
        super.viewDidLoad()

        self.emailInputField.delegate = self
        emailInputField.underlined()

        print(firstName)
        emailLabel.text = "What’s your email, " + firstName + "?"
    }

    @IBAction func next_pressed(_ sender: Any) {
    }
}

标签: iosswiftstringtextview

解决方案


推荐阅读