2016-10-03 122 views
0

目前正在使用我的應用程序,以學習swift(Im全新)。我遇到了一個我無法解決的錯誤。 我有兩個視圖控制器,因此ViewController &設置我的故事板中的兩個視圖。錯誤UIViewController沒有成員

在「設置」視圖我有一個textfield,並在「視圖控制器」視圖我有一個標籤。

我想通過從文本框的文本上的「設置」我的標籤「視圖 - 控制」

目前我得到以下錯誤:

value of type 'UIViewController' has no member 'ViewController'

我的代碼看起來有點像這樣的輸入現場:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    var secondVC: ViewController = segue.destination.ViewController as ViewController 

    secondVC.receivedString = textField.text! 
} 

的標籤:

class ViewController: UIViewController { 

@IBOutlet var city: UILabel! 
var receivedString: String = "" 


override func viewDidLoad() { 
    super.viewDidLoad() 


    label.text = receivedString 
} 

的「label.text」給我一個懸而未決的標識符太..

回答

1

要獲得目標viewController斯威夫特三是隻是segue.destinationsegue.destination.ViewController

var secondVC = segue.destination as! ViewController 

對於你聲明UILabel與名city秒誤差不label所以它必須是city.text = receivedString

+0

嗯,它並刪除錯誤,如果我決定說: 覆蓋FUNC準備(對於SEGUE: UIStoryboardSegue,發件人:任何?){ let secondVC = segue.destination as! ViewController secondVC.label = textField.text! –

+0

我想這就是我所做的?這不是最佳做法嗎? –

+0

@JeppeC在你的問題中,你傳遞的對象是'receivedString',並在'viewDidLoad'中分配城市標籤的文本,這是傳遞數據的正確方法,因爲在'prepare(for:sender:)'UILabel對象沒有初始化然而。 –

相關問題