2016-02-26 79 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 = "" 
} 

這可能也是值得投入一些精力拼寫正確。如果您知道所有標籤都拼寫完全相同,那麼跟蹤問題就容易多了:-)

相關問題