提问者:小点点

根据单击的tableView单元格定向到不同的ViewController


我试图根据单击的tableView单元格呈现一个viewController。

当前,如果它们都被点击,它们将重定向到相同的viewController,我将如何改变这一点?

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = self.tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! TableViewCell
    cell.cellLabel.text = self.objects.objectAtIndex(indexPath.row) as! String

    return cell
}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    self.performSegueWithIdentifier("other", sender: self)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if(segue.identifier == "other"){

        var upcoming: otherViewController = segue.destinationViewController as! otherViewController

        let indexPath = self.tableView.indexPathForSelectedRow!

        let titleString = self.objects.objectAtIndex(indexPath.row) as! String

        upcoming.titleString = titleString

        self.tableView.deselectRowAtIndexPath(indexPath, animated: true)


    }
}

我能在手机标签上做一个if ell.text吗?如if(celllabel.text==“Option8){func tableView(tableView:UITableView,DidSelectRowIndexPath IndexPath:NSIndexPath){self.PerformSegueWithIdentifier(Option8”,Sender:self)}

}

我使用的是Swift和Xcode7。


共3个答案

匿名用户

null

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if indexPath.row == 0 || indexPath.row == 2{
   self.performSegueWithIdentifier("other", sender: self)
}
else{
  self.performSegueWithIdentifier("other", sender: self)
}

}

匿名用户

是的,你可以。

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let cell = tableView.cellForRowAtIndexPath(indexPath)
    if cell.cellLabel.text == "option8" {
        self.performSegueWithIdentifier("other8", sender: self)
    }
}

匿名用户

您可以在didSelectrow中检查IndexPath.row,根据行号,您可以重定向到perticular Controller。