I have a BaseViewController connected to 3 different custom ViewControllers using segues with Identifiers. The BaseViewController has a tableview and based on the data in the tableviewCell, the BaseViewController decides which segue to take to the one of 3 custom DestinationViewControllers.
I also need to pass some data to the DestinationViewController.
I am trying to use either prepareForSegue or performSegueWithIdentifier.
prepareForSegue allows me to use the UIStoryboardSegue to set the destination view controller and pass it data. However, it does not let me specify the segue identifier I would like to call. Case 0 & Case 1 use two different ViewControllers.
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { switch testVar{ case 0: let svc = segue.destinationViewController as! CustomTableViewController1 svc.name = myName break; case 1: let svc = segue.destinationViewController as! CustomTableViewController2 svc.name = myName1 break; default: break } }
performSegueWithIdentifier allows me to specify the segue identifier, but it does not allow me to specify which one of the 3 custom DestinationViewControllers i'd like to call nor does it give me a good way to pass the data i need to pass.
func tableView(tableView: UITableView, willSelectRowAtIndexPath indexPath: NSIndexPath) -> NSIndexPath? { switch testVar { case 0: performSegueWithIdentifier("destination1", sender:self ) break; case 1: //Submitted performSegueWithIdentifier("destination1", sender: self) break; default: break } return indexPath }
Can you guys propose any solutions ? Thanks in advance!