2016-11-28 9 views
-1

私の問題の正確な解決策が見つかりませんでした。あるView Controllerから別のView Controllerにデータを渡す必要があります。問題は、セグの後、渡された文字列データがラベルに表示されないことです。ビューコントローラから別のビューコントローラにデータを渡す

func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject) { 
    if (segue.identifier == "segue1") { 
     if let destination = segue.destination as? ResultsViewController { 
      destination.name = correctslabel.text! 

二コントローラ:渡されたデータを表示しない、単なる変数と「名」とUIlabelがあります。

import UIKit 

class ResultsViewController: UIViewController { 

    @IBOutlet var namelabel: UILabel! 
    var name = "" 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     name = namelabel.text! 
    } 
}  

私はそれを行うために多くの方法を試しましたが、いずれも機能しませんでした。ありがとうございました

最終的には、私はAnybodyからAnyに送信者を変更しなければならないことを意味するオーバーライドfuncを行うために働いた。

答えて

0

これは試しましたか?

// ResultsViewController.swift 
override func viewDidLoad() { 
    super.viewDidLoad() 
    namelabel.text = name 
} 
+0

エラーを表示します。オプションのタイプの値 "string"がアンラップされていません。 –

+0

@TobyV。投稿されたコードでは、このように 'var name =" "'という名前のvarを宣言します。つまり、展開するものはありません。既にオプションではありません。宣言を 'var name:String? 'のようなものに変更したことは可能でしょうか? = "" '? –

+0

私はそこにnamelabel.text = nameを使用し、namelabel.textはオプションであるため、問題かもしれません。万が一、オプションではないことを知っていますか?ありがとうございました –

関連する問題