2017-09-14 159 views
0

我有嵌入在我的视图控制器的表视图,而且我希望能够设置塞格斯取决于被点击哪些细胞在视图控制器其他四个视图控制器。表视图(内部视图控制器)Segue公司不工作

然而,我似乎无法找出如何控制+从表视图的视图控制器拖动SEGUE。

我相信代码中的相关部分将是:

import UIKit 

    class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { 
    let options = ["Home", "My Account", "Settings", "Support"] 

    //MARK: Properties 
    var selectedItem: String? 
    @IBOutlet weak var nameTextField: UILabel! 

    @IBOutlet weak var tableView: UITableView! 

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

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath as IndexPath) 
     cell.textLabel?.text = options[indexPath.row] 
     return cell 
    } 

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

    //MARK: Actions 
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     if let selectedRow = tableView.cellForRow(at: indexPath){ 
      selectedItem = selectedRow.textLabel?.text 
     } 

     if selectedItem == "My Account"{ 
      performSegue(withIdentifier: "classifySegue", sender: self) 
     } else if selectedItem == "Settings"{ 
      performSegue(withIdentifier: "otherSegue", sender: self) 
     } 

    } 


} 

这将是观点和故事板: Simulation Storyboard

问题是当前otherSegue来自视图控制器,而不是表视图本身。

+0

https://stackoverflow.com/a/41887007/5461400 –

+0

你的意思是你想从只,而不是从实现代码如下的父视图 - 控制的tableview.view推? – dhin

+0

是的,我只是希望这样做,当我点击表格视图中的一行时,这取决于行中的文本,它将执行特定的继承我指定的视图控制器。 – user3628240

回答

0

它并不需要来自于自身的tableView。 segue应该来自包含tableView的VC。

您的代码仍然会起作用,因为你的

performSegue(withIdentifier: "classifySegue", sender: self) 

自我这是您的视图控制器调用执行赛格瑞

注:在你didSelect功能,您不需要得到细胞再次,只需设置你的selectedItem设置self.options [indexPath.row]因为你只是试图让你的细胞经过最初的文本。

+0

你知道为什么当我点击模拟中的一个单元格时,它不起作用吗?我在代码的其余部分添加了视图控制器页面,但由于某些原因,单元格不链接到下一个视图控制器。 – user3628240

+0

您是否尝试过使用断点来检查selectedItem的值?他们是否正确?并且如你所说,你是否已经从VC创建了下一个ViewController? –

+0

我想只是打印(“你好”)的didSelectRow并没有被打印到控制台,所以不知何故,好像功能甚至没有被当我点击一行调用。在它前面放置一个覆盖给了我一个错误,不会覆盖它超类中的任何方法。是因为我将我的tableView命名为“tableView”而不是别的吗? – user3628240

0

故事板不允许从tableview中赛格瑞,因为它无法点击/ have't任何行动,这样你就可以从细胞的tableView做SEGUE。

相关问题