UILabel 不改变它的值

UILabel don't change its value

我正在使用 Swift 进行应用程序开发的简单练习:导航和工作流教科书,但不明白为什么这段代码不起作用并且标签文本没有改变:

import UIKit

class MiddleViewController: UIViewController {

    @IBOutlet var happened: UILabel!
    var eventNumber = 1

    override func viewDidLoad() {
        super.viewDidLoad()

        if let existingText = happened.text {
            happened.text = "\(existingText) \n Event number \(eventNumber) was viewDidLoad"
            eventNumber += 1
        }
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        if let existingText = happened.text {
            happened.text = "\(existingText) 1"
            eventNumber += 1
        }

    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        if let existingText = happened.text {
            happened.text = "\(existingText)\nEvent number \(eventNumber) was viewDidAppear"
            eventNumber += 1
        }

    }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)

        if let existingText = happened.text {
            happened.text = "\(existingText)\nEvent number \(eventNumber) was viewWillDisappear"
            eventNumber += 1
        }

    }

    override func viewDidDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)

        if let existingText = happened.text {
            happened.text = "\(existingText)\nEvent number \(eventNumber) was viewDidDisappear"
            eventNumber += 1
        }

    }

}

如果我切换视图控制器,标签文本不会改变。

"(existingText)\n事件编号 (eventNumber) 是 viewWillDisappear"

因为在上面的文本中你使用了 "\n" ,所以它在下一行显示文本 label.Please 检查你的标签的 numberOfLines 。如果它是 1 那么它不会显示,因为文本在第二行

您需要添加

happened.numberOfLines = 0

在你的 viewDidLoad() 中。这将确保 UILabel 可以有多行文本。

viewDidLoad()中的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    happened.numberOfLines = 0

    if let existingText = happened.text {
        happened.text = "\(existingText) \n Event number \(eventNumber) was viewDidLoad"
        eventNumber += 1
    }
}