【发布时间】:2020-08-29 11:25:18
【问题描述】:
我有一个指向 PageViewControler 的 segue,它控制两个 ViewControler,虽然我认为我已正确设置它并且可以顺利运行它,但我无法将数据传递给其他两个视图。
我错过了什么?
无论如何,这是我从单元格指向 PageViewControler 的转场:
class HomeViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
if segue.identifier == "showDetails" {
let localDetails = segue.destination as! localDetails
let IndexPath = self.tableView.indexPathForSelectedRow!
let row = IndexPath.row
tableView.deselectRow(at: IndexPath, animated: true)
localDetails.index = row
let singleLocalInfo = restaurants[row]
localDetails.localName = singleLocalInfo.locale }}
我的 PageViewControler:
class PageViewController: UIPageViewController, UIPageViewControllerDelegate, UIPageViewControllerDataSource {
func newVc(viewController: String) -> UIViewController {
return UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: viewController)
}
lazy var orderedViewControllers: [UIViewController] = {
return [self.newVc(viewController: "localDetails"),
self.newVc(viewController: "blueScreen")]
}() etc,etc... }
最后是我需要显示数据的 viewControler:
class localDetails: UIViewController {
var localName: String = ""
etc...
}
我不得不削减大部分代码,但你明白了。 谢谢
【问题讨论】:
-
检查委托和闭包以传递数据
-
我做了,但据我了解,代表是为了返回数据。
-
tableView.deselectRow(at: IndexPath, animated: true)为什么要调用这个函数? -
哦,这只是为了获取所选行的索引号。
标签: ios swift uiviewcontroller delegates uipageviewcontroller