【发布时间】:2017-07-06 19:41:34
【问题描述】:
我有两个控制器,我想在它们之间传递数据: 这是第一个控制器,一个 tableviewcontroller。
class BooksVC: UITableViewController {
var books: [String] = []
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.title = "Books"
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return books.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = books[indexPath.row]
return cell
}
}
这是第二个控制器,一个视图控制器
class AddController: UIViewController {
@IBOutlet weak var inputField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func done(_ sender: Any) {
let myVC = storyboard?.instantiateViewController(withIdentifier: "BooksVC") as! BooksVC
myVC.books.append(inputField.text!)
myVC.tableView.reloadData()
dismiss(animated: true, completion: nil)
}
}
Reloaddata 不起作用,你能帮帮我我会很高兴。
【问题讨论】:
-
您使用
instantiateViewController创建了一个新的视图控制器对象,但您不执行任何操作来显示它。您是否已经有另一个应该使用的BooksVC? -
不,我必须连接到 BooksVC 控制器,而不是创建一个新的。
标签: ios arrays swift uitableview segue