2017-01-18 9 views
0

私は3 ViewControllersと3つの項目を持つテーブルビューを持っています。特定のViewControllerに特定のUITableView行を送信するにはどうすればいいですか?

tableview行をそれぞれ別のviewcontrollerに送信するにはどうすればよいですか?

これは私のコードです:

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 

var data: [String] = ["Go to First VC", "Go to Second VC", "Go to Third VC"] 

@IBOutlet weak var myTableView: UITableView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    // Table configurations 
    myTableView.dataSource = self 
    myTableView.delegate = self 
} 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = UITableViewCell() 
    cell.textLabel?.text = data[indexPath.row] 
    return cell 
} 

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return data.count 
} 
} 

私の推測では、performSegue()didSelectRowAtで関数を適用することですが、私は、特定の行を参照する方法がわかりません。

+0

ほとんどの場合、 'indexPath.row'プロパティを使用して、クリックされたセルを識別できます。 –

答えて

1

これだけindexpath.row

if indexPath.row == 0 { 
    // go to first viewController 
} else if indexPath.row == 1 { 
    // go to Second viewController 
} else if indexPath.row == 0 { 
    // go to Third viewController 
} 
+0

あなたはそれを作ったのですか? –

+0

こんにちはUmair、うまく働いた!ありがとう! –

+0

あなたは歓迎です、答えを受け入れてください。 –

0

をチェックし、あなたのdidSelectRowAtIndexPath方法で

非常に単純ではtableviewsの最初のあなたがここにindexPath.row を識別するために必要な選択方法はindexpathそうセクションと行が含まれていませんでしたsegueの行をチェックする必要があります。

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

    if indexPath.row == 0 { 
     //segue first view controller 
    } 
    else if indexPath.row == 1 { 
     //segue second view controller 
    } 
    else { 
     //segue last(third) view controller 
    } 
} 

希望すると、これが役に立ちます。

関連する問題