2016-02-26 82 views
-2

我有一张桌子,并且希望将其设置为nil,以便我可以使用其上的操作来更改其文本,现在不用零,它将显示“可选”文本!我可以在Swift中设置UILabel为零吗?

@IBOutlet var nameLable: UILabel! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 



@IBAction func helloworldaction(nameTextField: UITextField) { 
    nameLable.text = "\(nameTextField.text)" 
} 

但是当我将其更改为这一点,显示错误:

我应该怎么办?

回答

0

您应该打开一个可选值nameTextField.text。它可以是这样的:

if let text = nameTextField.text{ 
    nameLable.text = text 
} 
0

我认为你可以这样做:

nameLable.text = "\(nameTextField.text!)" 

但迫使解开是不是一个好的选择。您可以创建一个变量来存储文本值。然后在nameLable.text中引用字符串,而不是直接从标签中引用。

1

您不希望您的标签为零。你只是希望它的文本是空的。

@IBOutlet var nameLable: UILabel! 
override func viewDidLoad() { 
    super.viewDidLoad() 

    // SET THIS 
    nameLable.text = "" 
} 

@IBAction func helloworldaction(nameTextField: UITextField) { 

    // And use nameTextField.text directly 
    nameLable.text = nameTextField.text 
} 
1

这里的问题就是"\(nameTextField.text)" - 你使用字符串插值"\(X)"这是非常方便的打印值,而无需使用格式化,但你分配一个值 - 这是你在做什么在这里 - 你只需要使用nameTextField.text

然后你就可以解开的选项 - 如@Marina表明你 - 你还可以清除标签如果字段是零

if let text = nameTextField.text 
{ 
    nameLable.text = text 
} 
else 
{ 
    nameLable.text = "" 
} 

这可能也是值得投入一些精力拼写正确。如果您知道所有标签都拼写完全相同,那么跟踪问题就容易多了:-)

相关问题