2016-12-19 70 views
0

我在一個視圖控制器創建2個TableViewControllers程序爲:鏈接的UITableViewCell標籤下一個視圖控制器編程

// contents for labels in cells for tableviewcontrollers 

let contents1 : [String] = ["One:","Two:","Three:","Four:","Five:"] 

let contents2 : [String] = ["Six:","Seven:","Eight:","Nine:","Ten:"] 

override func viewDidLoad() { 
    super.viewDidLoad() 

    table1.delegate = self 
    table1.dataSource = self 

    table2.delegate = self 
    table2.dataSource = self 
} 

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

    if(tableView.tag == 1) 
    { 
     return contents1.count 
    } 
    else if (tableView.tag == 2) 
    { 
     return contents2.count 
} 
    return 0 
} 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath as IndexPath) 

    if (tableView.tag == 1) 
    { 
     cell.textLabel?.text = contents1[indexPath.row] 
    } 
    else if (tableView.tag == 2) 
    { 
     cell.textLabel?.text = contents2[indexPath.row] 

    } 
return cell 
} 

我的問題是,我怎麼能編程鏈接「四:」第一TableViewController「表1」的標籤當選擇顯示下一個新的ViewController而不使用Segue時?

+0

,如果你不希望使用賽格瑞那麼你可以使用NSUserDefaults的和創建委託方法 –

+0

@ Mayank Patel先生,我是Swift的初學者。您能否詳細說明解決方案,因爲我已經給出了完整的代碼? –

+0

你想傳遞數據到下一個視圖控制器嗎? –

回答

0

您可以UITableView'sdeSelectRowAt委託方法來識別小區選擇之後,你可以繼續到下一個視圖

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    let cell = tableView.cellForRow(at: indexPath) 

    if cell?.textLabel?.text == "Four" { // you can use you indexPath to compare as well 
     let secondViewController = self.storyboard.instantiateViewControllerWithIdentifier("SecondViewController") as SecondViewController 
     self.navigationController.pushViewController(secondViewController, animated: true) 
    } 
} 
+0

Mayank Patel @ Thanx先生,它爲self.present(secondViewController,animated:true,完成:無),但它沒有爲self.navigationController?.pushViewController(secondViewController ,, animated:true)工作。它沒有推到SecondViewController,但我想推導航導航控制器,因爲我需要默認返回按鈕。可以幫助你 –

+0

你必須嵌入你r當前視圖控制器與導航控制器之後,您可以推入secondviewcontrollor –

+0

你不需要檢查單元對NILL,如果你做可選展開 – Lefteris

-1
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 
    cell.textLabel?.text = pets[indexPath.row] 
    // Configure the cell... 

    return cell 
} 
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    myIndex = indexPath.row 
    performSegue(withIdentifier: "segue", sender: self) 
+0

請添加一些代碼的解釋。 – Maddy

相關問題