これについてはオンラインで多くのチュートリアルがあるようですが、TableView Controller から最初の View Controller に値を戻すチュートリアルが見つかりません。
これが私のセットアップです...最初のViewControllerにはテキストフィールドがあり、ユーザーがそれを押すと、2番目の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
}
}
前もって感謝します!