目前正在swift开发一个小型ios应用程序,我已经使用.plist中的数据填充了一个集合视图单元格,每个单元格都有一个标题和按钮,我想要的是在多个视图控制器中切换到多个视图控制器。按下按钮后,故事板取决于segue标识。例如,如果segue将id设置为food,我希望它导航到名为food的视图?
或者如果segue更容易从单元格中提取标题,那么导航到与单元格具有相同标题的视图?
生病尝试并在代码中解释:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if segue.identifier == "food"
{
//then navigate to the view controller called food
}
else if segue.identifier == "drink"{
{
//navigate to the view called drink
}
}
答案 0 :(得分:1)
如果食物,饮料或任何其他物品在故事板中有自己独特的视角,这是可以实现的。
您可以为UICollectionView中的每个按钮指定一个字符串,并检查该集合中的哪个项目被点击,并使用按钮字符串执行performSegueWithIdentifier:
。
performSegueWithIdentifier("toComments", sender: self)
然后prepareForSegue:
方法传递数据。如果喝,请再做一次。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "toFood" {
let ExchangeViewData = segue.destinationViewController as! FoodViewController
ExchangeViewData.foodMenuToShow = foodMenuID //This can be anything that you get your food items.
}
}
答案 1 :(得分:0)
你不能做你想要的。 segue标识符决定了segue调用哪个视图控制器。如果要转到其他视图控制器,请使用不同的标识符调用segue。当你到达prepareForSegue
时,为时已晚。特定视图控制器的segue已在进行中。
你应该解释你正在尝试做什么,我们可以帮助你解决你的问题,而不是试图打击API,做一些既不可能也不合适的事情。 (您的问题是“XY problem”的示例。)