EDIT 2: Eine halbe Lösung unten hinzugefügt. Immer noch offen für eine vollständige Lösungswift 3 Sekunden TableView-Segment wird im Navigationscontroller nicht angezeigt
EDIT 1: Bilder hinzugefügt.
Ich brauche Hilfe bei der Navigation zwischen einer zweiten und dritten Tabellenansicht.
Ich habe einen Navigationscontroller und drei Tabellenansichten. Die ersten beiden erscheinen so gut, dass das Klicken auf eine dynamische Tabellenansichtszelle> in der ersten Tabellenansicht in die zweite Tabellenansicht verschoben wird. Der zweite Tabellenansichtszellen-Chevron>, der im Storyboard festgelegt ist (Accessory: Disclosure Indicator), wird jedoch während der Laufzeit nicht angezeigt, und daher wird das Klicken auf den Tabellenzugriff nicht in die dritte Tabellenansicht verschoben. Ich brauche Hilfe, um das zu beheben.
In jedem Fall habe ich mit Strg + die Zellen mit der nächsten Tabellenansicht im Storyboard als show verknüpft und habe mich in den vorherigen Tableview-Controllern auf den Übergang vorbereitet. Aber nur einer arbeitet und der andere verwaist.
Wenn Sie eine Checkliste vorschlagen könnten, um sicherzustellen, dass der Navigation Controller über drei Tabellenansichten funktioniert, wäre dies hilfreich. Ich bin mir nicht sicher, welchen Code ich zeigen soll, also poste ich beide Segmente. Aber es ist vielleicht kein Zwischenfall, also weiß ich es nicht.
erste Tabellenansicht Weeks arbeitet zu zweiten Tabellenansicht Ligen. Lädt die json-Datei, je nachdem, was angeklickt wurde.
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"
}
}
Aber zweite Liga Tableview funktioniert nicht an Dritte Tableview gehen Spiele
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
}
}
EDIT 1: Hinzugefügt Bilder:
in erster Tableview beginnt fein ...
Stoppt sie e in der zweiten Tableview kann nicht an Dritte weitergegeben Tableview
EDIT 2 bewegen: Halb Lösung
ich eine halbe Lösung gefunden. Der Menüpunkt öffnet nun eine neue Ansicht, nur dass der Chevron nach der Tat erscheint. didSelectRowAt fügt den fehlenden Disclosure-Indikator direkt hinzu und wechselt zum neuen View-Controller. Konnte keine ViewWillAppear mit IndexPath finden, also entschied ich mich für didSelectRowAt. Funktioniert, wenn mindestens geklickt wird. Nur der Offenlegungsindikator fehlt beim erstmaligen Laden. Wie lade ich den accessoryType, bevor die Ansicht läuft?
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)
}
Können Sie 'cellForRow' für' LategiesViewController' hinzufügen. –