编辑2:在底部添加了半解决方案。仍然可以使用完整的解决方案
编辑1:添加图像。
我需要帮助修复第二和第三个tableview之间的导航。
我有一个导航控制器和三个表视图。前两个显示正常,点击动态tableview单元>在第一个tableview中移动到第二个tableview。然而,第二个tableview cell vvron>虽然在故事板中设置(附件:Disclosure Indicator)在运行时没有显示,因此点击它不会移动到第三个表视图。我需要帮助解决这个问题。
在每种情况下,我按Ctrl键将单元格链接到storyboard中的下一个tableview,并在之前的tableview控制器中准备segue。然而,只有一个工作,另一个似乎是孤儿。
如果您可以建议一个清单,以确保导航控制器在三个有用的表视图中工作。不知道要显示什么代码所以我会发布两个segues。但这可能不是一个棘手的问题,所以我不知道。
第一个tableview Weeks工作转到第二个tableview联赛。根据点击的内容加载json文件。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "toLeagues"
{
let leaguesController = segue.destination as! LeaguesViewController
// pass the selected row
let selectedRow = self.tableView.indexPath(for: sender as! UITableViewCell)!.row
if selectedRow == 0
{
leaguesController.weekFileName = "sports_week_1"
}
else
{
leaguesController.weekFileName = "sports_week_2"
}
}
但是第二次查看联赛并没有进入第三次观看比赛
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "toGames"
{
let gamesController = segue.destination as! GamesViewController
// pass the selected row
let selectedRow = self.tableView.indexPath(for: sender as! UITableViewCell)!.row
gamesController.gameName = selectedRow.description
}
}
编辑1:添加图片:
在第二个tableview中停止此处,无法移至第三个tableview
编辑2:半解决方案
我找到了一半解决方案。菜单项现在打开新视图,仅在事后显示V形符号。 didSelectRowAt直接添加缺少的披露指标并转到新的视图控制器。找不到带有IndexPath的viewWillAppear,所以我选择了didSelectRowAt。至少点击时工作。只是初始加载时缺少披露指标。如何在视图运行之前加载accessoryType?
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath)
cell?.accessoryType = .disclosureIndicator
// force menu to move to GamesViewController
let myGamesView = self.storyboard!.instantiateViewController(withIdentifier: "gamesView")
self.navigationController?.pushViewController(myGamesView, animated: true)
}
答案 0 :(得分:0)
尝试在accessoryType
而不是cellForRowAt
设置didSelectRowAt
。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "yourIdentifier") as! YourCustomCell
//Your other code
cell.accessoryType = .disclosureIndicator
return cell
}