xcode swift不会更改标签文本
Posted
技术标签:
【中文标题】xcode swift不会更改标签文本【英文标题】:xcode swift won´t change label text 【发布时间】:2015-09-16 19:33:10 【问题描述】:我有两种观点。第一个是“homeView”,第二个是“detailView”。
在 homeView 我有两个按钮 按钮1 按钮2
详细查看我的标签 标签1
当我按下 button1 时,应更改为“detailView”,label1.text 应为“button 1 gedrückt” 当我按下 button2 时,应更改为“detailView”,label1.text 应为“button 2 gedrückt”
当我使用代码时:
@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!
@IBAction func button1(sender: UIButton)
let vc : AnyObject! = self.storyboard!.instantiateViewControllerWithIdentifier("detailview")
self.showViewController(vc as! UIViewController, sender: vc)
// self.label1.text = "button 1 gedrückt"
视图会改变,但 label1.text 不会改变。 如果我使用
@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!
@IBAction func button1(sender: UIButton)
let vc : AnyObject! = self.storyboard!.instantiateViewControllerWithIdentifier("detailview")
self.showViewController(vc as! UIViewController, sender: vc)
self.label1.text = "button 1 gedrückt"
我会得到一个错误:
我不知道我能做什么??
【问题讨论】:
检查您的故事板中与label1
的连接。您的问题的可能原因是它没有连接。该属性是一个隐式取消引用的可选,因此如果您在未连接时尝试访问它,它将崩溃
【参考方案1】:
确保您的标签已连接到您的插座或是否重复。如果没问题,请尝试删除连接并重新连接。下图说明了我在说什么。
【讨论】:
【参考方案2】:非常感谢。 现在我可以使用此代码更改 label1 中的文本
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)
if (segue.identifier == "segueTest")
let svc = segue.destinationViewController as! SecondViewController;
svc.toPass = label2.text
现在还有一个问题?我可以把这个“覆盖函数”放到 IBAction 中吗?因为我想添加更多按钮。每个按钮的 label1 中都应该有另一个文本。
谢谢(我是 Xcode 和 swift 的绝对初学者)
【讨论】:
其实不是。每次你转到另一个视图时,都会调用 prepareForSegue。无需将其放入 IBAction。尝试在堆栈溢出中打开另一个问题,详细了解发生了什么,以便我们解决您的问题。以上是关于xcode swift不会更改标签文本的主要内容,如果未能解决你的问题,请参考以下文章
swift中tableView的单元格高度扩展时更改标签文本
xcode在presentViewController之后更改标签的文本
遵循 Xcode 的 Apple 'Food Tracker' 教程 - 无法获取更改标签文本的按钮