我有一个BaseViewController连接到3个不同的自定义ViewControllers使用带标识符的segues . BaseViewController有一个tableview,基于tableviewCell中的数据,BaseViewController决定将哪个segue带到3个自定义DestinationViewControllers中的一个 .
我还需要将一些数据传递给DestinationViewController .
我试图使用prepareForSegue或performSegueWithIdentifier .
- prepareForSegue允许我使用UIStoryboardSegue设置目标视图控制器并传递数据 . 但是,它不允许我指定我想要调用的segue标识符 . 案例0和案例1使用两个不同的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允许我指定segue标识符,但它不允许我指定我想调用的3个自定义DestinationViewController中的哪一个,也不能给我一个传递我需要传递的数据的好方法 .
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
}
你们能提出任何解决方案吗?提前致谢!
1 回答
你必须同时使用performSegue和prepareforsegue
并在您的prepareForSegue工具中如下:
如果需要,也可以使用didSelectRow而不是willSelectRow