如何根据Segue身份从集合视图单元格

时间:2015-11-30 17:18:18

标签: ios swift uiviewcontroller segue collectionview

目前正在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
  }
}

2 个答案:

答案 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”的示例。)