2017-06-20 82 views
0

我已經研究了這個問題,但大約一個小時後還沒有找到答案。我有一個CardTableViewViewController作爲根和第二個表標識爲workTableView。當我選擇一個單元格並將數組發送到workTableView時,我想將workTableView拖到CardTableView上。我想用show segue來做到這一點。將UITableViewController推送到ViewController的UITableView

以下是我在包含CardTableViewViewController曾嘗試:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    //NSLog("You selected cell number: \(indexPath.row)!") 

    tableView.deselectRow(at: indexPath, animated: true) 


    let vc = UIStoryboard(name:"Workout", bundle:nil).instantiateViewController(withIdentifier: "workTableView") as! TableViewController 
print("selected") 
    self.navigationController?.pushViewController(vc, animated: true) 
} 

我在故事板創建workTableView,而是想以編程方式最終創建它。

+0

刪除'self.window .rootViewController = nav1'和'self.window .makeKeyAndVisible()'!?。順便說一句,爲什麼你需要遵循這種方法?您可以在選擇單元格時「呈現」您的視圖控制器。 – nayem

+0

我建議通過一些關於展示視圖控制器的簡單教程 – SomaMan

+0

@nayem我不認爲我可以「呈現」,因爲根視圖不是控制器,它在控制器內 – defoification

回答

1

這個替換您tableView(_:didSelectRowAT:)方法:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 

    tableView.deselectRow(at: indexPath, animated: false) 
    let storyboard = UIStoryboard(name: "Workout", bundle: nil) 
    let nextScene = storyboard.instantiateViewController(withIdentifier: "SecondTableViewControllerStoryboardIdentifier") as! TableViewController // TableViewController <- must be changed to the name of the Second View Controller class 

    nextScene.dataToPass = something you want to pass // dataToPass is the variable that you declare in your Second View Controller 

    self.navigationController?.pushViewController(nextScene, animated: true) 
} 
+0

對不起,我沒有澄清這個問題就夠了。看我的編輯。其實,我只有一個'UITableView'。該tableview在'UIViewController'中。我仍然會在'UITableView'中覆蓋它,還是需要將它更改爲'UITableViewController'? – defoification

+0

看我的編輯。刪除「覆蓋」關鍵字。 @defoification – nayem

+0

以及我將這個方法放在哪個類中,'ViewController'或'UITableView'? – defoification

相關問題