【发布时间】:2017-07-22 21:27:22
【问题描述】:
这是我在这里的第一个问题。所以,对我宽容一点。实际上我正在尝试更改按钮的文本。我所说的文字,是指按钮上显示的内容。我正在使用setTitle("title", for: .normal)。但这似乎不起作用。实际上,我正在使用回调将值发送回场景。我成功地取回了值(通过调试检查),但我无法将值设置为按钮的标题。如果我需要为要回答的问题提供额外的内容,请告诉我。这是我正在使用的代码
temp.callback = {
message in
var msg = (sender as! UIButton).titleLabel?.text
msg?.append("=")
msg?.append(message)
self.btnManya.setTitle(msg, for: .normal)
}
@IBAction func btnEnterClicked(_ sender: Any) {
let value = Int(tfEdit.text!)
if(value! >= from && value! <= to)
{
callback?(tfEdit.text!)
self.dismiss(animated: true, completion: nil)
self.navigationController?.popViewController(animated: true)
}
else
{
tfEdit.text = ""
}
}
问题是,我不能只更改按钮的文本。其他功能,如隐藏按钮和禁用它工作正常。我也尝试过更改 viewWillAppear 中按钮的文本。也尝试在其他按钮的操作上更改按钮的文本。任何人都可以确认我应该使用 setTitle 来更改文本吗?更改按钮文本的示例程序会很有帮助。
谢谢
【问题讨论】:
-
您需要发布一些代码,以便人们可以帮助您。
-
我已经添加了代码。我不确定需要多少代码才能理解问题所在。
-
你在哪里执行 temp.callback()???
-
您可能应该在主线程上执行 setTitle 行。
-
您的代码只修改了状态正常的标题。如果您为其他州设置了标题,您也必须设置这些标题。在回调的最后一行添加带有新标题的
NSLog。