2016-07-06 2 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

それがメモリに存在いない場合にのみ、それがnilを返しますので、

func labelTextChanger() { 

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

を、このいずれかを試してみてください。したがって、それはnilになることはできません。

+0

はありがとうございましたが、それは助けにはなりませんでした。そのロジックは第2ラベル(replyToUserName) –

+0

のみを埋めます。これは、 'fromUserName'がelse部分を呼び出すたびに何らかのテキストを持つことを意味します。あなたはどこからこのメソッドを呼び出していますか? – Lion

0

両方のラベルを一緒に更新する場合は、elseは不要です。

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

あなたが使用することができ、実装の非常に広い例。基本的にはUITextFieldDelegateを使用してください。ユーザーがテキストフィールドの編集を終了すると、textFieldDidEndEditing:への呼び出しが行われ、この機能ではラベルを更新できます。私が正しくあなたの質問を理解していれば、あなたが必要

func labelTextChanger() { 

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

そのロジックはラベルを変更しませんでした! –

+0

あなたの条件( 'fromUserName.text == nil')が満たされていないと、' text'値がnilを返していません。あなたの正確なセットアップ/コードを知らずに、あなたに正しい条件を与えるのは難しいです。 – Hodson

+0

textFieldのテキストが変更された後に2番目のラベルを編集する必要があります –

0

についての詳細を読むことができる、あなたがに変わりますfromUserName.textが空の文字列 ようですUITextFieldを編集するたびに2つのUILabelsのテキストを変更しますか?その場合は、ストーリーボードファイルにリンクされた「編集開始」または「編集済み変更」IBActionを使用する必要があります。その後、UITextFieldのテキストが何であれ、UILabelの値を変更します。だからここ

@IBAction textFileIdEditingChanged { 
    fromUsername.text = textFileId.text 
    replyToUserName.text = textFileId.text 
} 
1

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

偉大な答えが、私はfromUserNameラベルテキストを保存し、textFileld編集後replyToUserNameテキストを編集する必要があります –

0

がmaケースのための右のコードです:

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 
} 
関連する問題