似乎有很多的教程在網上對於這一點,但我不能找到一個傳遞值回從TableView中控制器的第一視圖控制器。選擇的TableView細胞後,將數據傳遞迴以前的視圖控制器在斯威夫特
這裏是我設置了...第一個視圖控制器具有一個文本框,當它在用戶按下,它需要他們的第二TableViewController,在那裏他們可以從列表中選擇一個國家。一旦他們選擇了它,我希望他們按下導航欄上的DONE按鈕,然後我希望它繼續回到第一個ViewController並顯示他們在文本框中選擇的國家(準備好讓他們按下按鈕,然後按應用程序繼續等...)
從我可以工作了,我需要在didSelectRowAtIndexPath方法的方法來做到這一點...?但我也一直在看着放鬆賽段的談話?對不起,我對Swift和iOS代碼很陌生,所以希望能明確回答什麼是最好和最簡單的方法。請在下面看我的代碼,每個控制器:
的ViewController
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
performSegueWithIdentifier("countryTableView", sender: self)
return false
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
TableViewController
import UIKit
class TableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var tabeView: UITableView!
var countryPicker = ["Colombia", "England", "France", "Germany", "Brazil", "Austria", "Spain", "Australia", "USA", "Berlin", "Thailand", "Northern Ireland", "New Zealand", "Hawaii", "Switzerland", "Sweeden", "Finland", "Turkey", "Russia", "Netherlands", "Japan"]
override func viewDidLoad() {
super.viewDidLoad()
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return countryPicker.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("UITableViewCell") as! UITableViewCell
cell.textLabel!.text = countryPicker[indexPath.row]
cell.selectionStyle = UITableViewCellSelectionStyle.Blue
return cell
}
}
提前
謝謝!
通常,協議方法將被用於將數據傳遞迴以前的VC。其他的東西可以使用像NSNotification – antonio081014