2016-06-27 4 views
0

このボードを初めて使用しています。私の悪い英語を前もって言い訳してください。ラベルに任意の値をラップできません

サブビューから親ビューに文字列を送信しようとしています。その文字列をラベルに設定しようとすると、「オプション値をアンラッピングしている間に予期せず見つからない」というメッセージが表示され、アプリケーションがクラッシュします。サブビューから

コード例:親ビューから

class TableViewController: UITableViewController { 

override func viewDidLoad() { 

    super.viewDidLoad() 

    self.view.backgroundColor = UIColor.blueColor() 

    sendDataToVc("test") 

} 

override func didReceiveMemoryWarning() { 

    super.didReceiveMemoryWarning() 

} 

func sendDataToVc(myString : String) { 

    let Vc = ViewController() 
    Vc.dataFromContainer(myString) 
} 

例:

class ViewController: UIViewController { 

@IBOutlet weak var label1: UILabel! 
var cacheStr1 : String! 
var cacheStr2 : String? 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    label1.text = "" 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

func dataFromContainer(containerData : String){ 


    label1.text = cacheStr1 


} 

@IBAction func changeLabel(sender: AnyObject) { 



} 

は私が間違ってやっているものを何もより多くのアイデアを持っていません。ご協力ありがとうございました。

答えて

0

問題は、この行です:

let Vc = ViewController() 

あなたは新しいインスタンス作成している - 新しいのViewControllerのインスタンスを。それはあなたがしたいことではありません。 の既存のインスタンスへの参照を取得する必要があります。これはView Controllerの親View Controllerであり、View ControllerがTableViewControllerとの関係にある場合です。

0

あなたより良いインスタンスごViewControllerフォームStoryBoard、あなたがプロパティとして渡したいものを定義し、次にあなたが表示する必要がある値にこのプロパティを設定し、あなたが

を必要としてあなた ViewControllerののviewDidLoadであなたのビューを更新
関連する問題