2017-06-29 43 views
0

編輯2:在底部添加了一個半解決方案。仍然打開一個完整的解決方案swift 3第二個TableView segue沒有在導航控制器中顯示

編輯1:添加圖像。

我需要幫助修復第二個和第三個tableview之間的導航。

我有一個導航控制器和三個表視圖。前兩個顯示罰款,以便在第一個tableview中單擊一個動態tableview單元格移動到第二個tableview。然而,在故事板(附件:Disclosure Indicator)中設置的第二個tableview單元格chevron>在運行時不顯示,因此單擊它不會移到第三個tableview。我需要幫助解決這個問題。

在每種情況下,我都按照show的方式Ctrl +將單元格鏈接到故事板中的下一個tableview,並在之前的tableview控制器中準備segue。然而,只有一個有效,另一個似乎孤兒。

如果您可以建議一個清單,以確保導航控制器在三個有助於跨瀏覽器的情況下工作。不知道要顯示什麼代碼,所以我會發布兩個segues。但它可能不是一個問題,所以我不知道。

第一桌面視圖周作品去秒錶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:新增圖片:

開始了在第一tableview中細...
starts off fine, get > to move to next view

阻止她E在第二tableview中,不能移動到第三的tableview enter image description here

編輯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

您可以爲'LeaguesViewController'添加'cellForRow'。 –

回答

0

嘗試在cellForRowAt而不是didSelectRowAt設置accessoryType

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "yourIdentifier") as! YourCustomCell 

    //Your other code 
    cell.accessoryType = .disclosureIndicator 
    return cell 
} 
+0

我明白了,所以我可以將cell.accessoryType添加到單元格中。這就說得通了。這修復了雪佛龍。謝謝。仍然需要強制其他視圖打開,但這個工程。 現在我注意到,我的第二個segue將永遠不會將單元格的文本返回到第三個視圖。 gamesController.gameName = selectedRow.description是錯誤的。我將不得不使用indexPath來獲取單元格然後獲取文本。 – sf2k

+0

@ sf2k請不要發表您的評論,請您更具體地瞭解您的問題。此外,如果您正在使用Segue,則無需推送ViewController,它將使用segue自動推送。 –

+0

答案已被接受。我現在的問題是我沒有正確使用賽格。 gamesController.gameName = somethingsomething – sf2k

相關問題