2016-07-06 40 views
0

美好的一天!所以這是我的問題 - 我需要從1個文本字段中更改2個不同的標籤。試過簡單的if-else邏輯,但它不適用於我的情況。從1個文本字段編輯2個標籤

func labelTextChanger() { 

    if fromUserName.text == nil { 
     fromUserName.text = textFileld.text 
    } else { 
     replyToUserName.text = textFileld.text 
    } 
} 

ma case

回答

0

試試這個,

func labelTextChanger() { 

     if fromUserName.text?.characters.count > 0 { 
      fromUserName.text = textFileld.text 
     } else { 
      replyToUserName.text = textFileld.text 
     } 
    } 

因爲它會返回nil,只有當在內存中不是存在了。所以,它不能是nil

+0

謝謝你,但它並沒有幫助。該邏輯只填寫第二個標籤(replyToUserName) –

+0

,這意味着你的'fromUserName'有一些文本,所以每次調用else部分。 AQnd從哪裏調用這個方法? – Lion

0

如果您要將兩個標籤更新到一起,則不需要else

if fromUserName.text == nil { 
    fromUserName.text = textFileld.text 
    replyToUserName.text = textFileld.text 
} 

你可以使用一個實現的一個非常廣闊的例子。基本上你應該使用UITextFieldDelegate。當用戶完成編輯文本字段時,將會撥打textFieldDidEndEditing:,在此功能中您可以更新標籤。

import UIKit 

class ViewController: UIViewController, UITextFieldDelegate { 

    var labelOne = UILabel() 
    var labelTwo = UILabel() 
    var myTextField = UITextField() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    func textFieldDidEndEditing(textField: UITextField) { 
     if textField == myTextField { 
      labelOne.text = textField.text 
      labelTwo.text = textField.text 
     } 
    } 
} 

你可以閱讀更多關於UITextFieldDelegatehere

+0

該邏輯沒有改變任何標籤! –

+0

那麼這將是你的條件('fromUserName.text == nil')沒有得到滿足,即它的'text'值不返回零。不知道你的確切設置/你有什麼代碼,它很難給你正確的使用條件。 – Hodson

+0

我需要在textField文本更改後編輯第二個標籤 –

0

似乎fromUserName.text是一個空字符串 所以你應該更改爲:

func labelTextChanger() { 

    if fromUserName.text != "" { 
     fromUserName.text = textFileld.text 
    } else { 
     replyToUserName.text = textFileld.text 
    } 
} 
1

如果我正確理解你的問題,你需要每當編輯UITextField時都要更改2個UILabel的文本?如果是這樣,您應該使用與您的故事板文件鏈接的「Editing Began」或「Editing Changed」IBAction。然後,讓UILabel的值更改爲任何UITextField的文本。

@IBAction textFileIdEditingChanged { 
    fromUsername.text = textFileId.text 
    replyToUserName.text = textFileId.text 
} 
+0

很好的答案,但我需要保存來自用戶名標籤文本和editFileToUserName文本後textFileld編輯 –

0

所以這裏是馬情況下正確的代碼:

var zalupa = Bool() 


func textFieldShouldReturn(textField: UITextField) -> Bool { 
    if (!zalupa) { 
     fromLabel.text = textField.text 
     zalupa = true 
    } else { 
     replyLabel.text = textField.text 
     zalupa = false 
    } 
    return true 
}