【发布时间】:2017-12-03 17:50:59
【问题描述】:
编辑 2:在底部添加了一个半解决方案。仍然对完整的解决方案持开放态度
编辑 1:添加图像。
我需要帮助修复第二个和第三个表格视图之间的导航。
我有一个导航控制器和三个表格视图。前两个显示得很好,以便单击第一个 tableview 中的动态 tableview 单元格 > 移动到第二个 tableview。然而,在情节提要中设置的第二个表格视图单元 chevron >(附件:披露指示器)在运行时不会显示,因此单击它不会移动到第三个表格视图。我需要帮助解决这个问题。
在每种情况下,我都按 Ctrl+将单元格链接到情节提要中的下一个 tableview,并准备好在以前的 tableview 控制器中进行 segue。然而,只有一个有效,另一个似乎是孤立的。
如果您可以建议一个清单以确保导航控制器可以跨三个表视图工作,那将很有帮助。不知道要显示什么代码,所以我会发布两个 segues。但这可能不是一个segue问题,所以我不知道。
第一个 tableview 周工作将进入第二个 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"
}
}
但是第二个 tableview 联赛不能参加第三个 tableview 游戏
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:添加图片:
编辑 2:半解
我找到了一半的解决方案。菜单项现在打开新视图,只有人字形出现在事实之后。 didSelectRowAt 直接添加缺少的披露指示符并转到新的视图控制器。找不到带有 IndexPath 的 viewWillAppear,所以我选择了 didSelectRowAt。至少在单击时有效。只是在初始加载时缺少披露指标。视图运行前如何加载附件类型?
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)
}
【问题讨论】:
-
你可以为
LeaguesViewController添加cellForRow。
标签: ios swift3 uinavigationcontroller