2017-05-20 11 views
0

この関数を対象とするサブミットUIButtonがあり、次のView Controllerに渡すtextFieldがあります。したがって、ユーザーがtextFieldに入力すると、入力されたものは何でも、ユーザーが送信ボタンをタップすると、テキストフィールド内の文字列が次のView ControllerのUILabelに渡されます。ナビゲーションを介してデータをプッシュする方法View Controller

func submitTapped() { 
     let secondViewController = SecondViewController(nibName: nil, bundle: nil) 
     navigationController?.pushViewController(secondViewController, animated: true) 

     print("Button tapped") 
    } 
} 

2番目のコントローラーを使用してその文字列をプッシュするにはどうすればよいですか?また、私はprepareForSegueを使用しようとしましたが、これはセグエを経由して画面を遷移していないため、これはセグエと関係がないと考えています。

ありがとうございました!

+0

ああ、私はそれを解決しました。私がしなければならなかったのは、secondViewControllerからラベルにアクセスすることだけでした。ありがとう! –

+0

[View Controller間でデータを受け渡しする]の可能な複製(http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) –

答えて

1

SecondViewControllerでは、オブジェクトを作成するときに変数を作成し、値を割り当てます。以下の例を確認してください:以下のような

class SecondViewController { 
var dataString: String? 
} 

パスデータ:YourSecondViewControllerで

func submitTapped() { 
     let secondViewController = SecondViewController(nibName: nil, bundle: nil) 
     secondViewController.dataString = textField.text! 
     navigationController?.pushViewController(secondViewController, animated: true) 
     print("Button tapped") 
    } 
} 
+0

ありがとう!しかし、それは2つのクラス間の緊密な結合を作りませんか?これを達成する別の方法がありますか? –

0

、変数を宣言します。コードの下に使用して

class YourSecondViewController { 
    var strData: String? 
    } 

パスデータ:

func submitTapped() { 
    let storyboard = UIStoryboard(name: "Main", bundle: nil) 
    let objSecond = storyboard.instantiateViewController(withIdentifier: "YourSecondViewControllerID") 
    objSecond.strData = yourTextField.text! 
    self.navigationController?.pushViewController(objSecond, animated: true) 
} 
関連する問題