使用单表视图控制器为每个集合视图单元格按下

时间:2016-03-28 17:40:42

标签: ios swift uitableview uicollectionview

我有5个名为&#34的集合视图单元; Resturants","商店","医疗" ,"客厅" ,"公园"等等。所以现在我设置了10个视图控制器,并在每个五个控制器内放置表视图,我调用json数据并在表视图中显示。我也有一个自定义单元格,我用于所有iew controlelr表视图

就像说,如果用户按,Restaurant,我将重定向到一个视图controlellr。我已经调用了`baseurl / category_01的webservies。所以从这个网址我将获取名称,地址,图像,我将在我的表格视图中显示

但是我知道这是错误的做法。如果我有20个集合视图单元格。那么如果我创建20个具有20个表视图的视图控制器意味着不好。

这是我在swift 2.0中的第一个应用程序。

任何人都可以建议我使用单视图controlellr和一个表视图来查看我的所有10个集合视图数据单元。

但我的集合视图中的一个东西是我从一个json url获取单元数据。在每个数据被指定为一个类别id.Like:

[
{
category_id : 0
category_name : Restaurant
},
{
category_id : 1
category_name : park
},
{
category_id : 2
category_name : shops
},
{
category_id : 3
category_name : medical
},
]

像明智的10个单元格数据,我将在表格视图中显示。所以当我使用一个视图controllelr与一个表视图时我需要提及,`哪个indespath.row按下并且应该等于我的类别id和shoyld显示相关数据。

现在我在collectionviewcontroller.swift中使用的是。我只是按哪个索引路径行,我只是导航到另一个视图控制器

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
        // You can use indexPath to get "cell number x", or get the cell like:
    let cell  = collectionView.cellForItemAtIndexPath(indexPath)

    if((indexPath.row) == 0) {

        let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let vc: ViewController2 = storyboard.instantiateViewControllerWithIdentifier("ViewController2") as! ViewController2
        self.presentViewController(vc, animated: true, completion: nil)
        print("Layout 1 clicked")

    }
    else if((indexPath.row) == 1) {
        let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let vc: ViewController3Bank = storyboard.instantiateViewControllerWithIdentifier("ViewController3Bank") as! ViewController3Bank
        self.presentViewController(vc, animated: true, completion: nil)
        print("Layout 2 clicked")
    }

那么如何使用单个viewcontrolel1r表视图...请帮帮我..

由于

1 个答案:

答案 0 :(得分:0)

将类别名称存储在数组或其他位置,随时按下单元格,通过从数组中选择它来调用特定类别,如下所示

categoryArray[indexPath.row]

然后,当要转换到另一个视图时,您将检查已选择的类别,并使用相关数据填充tableview。您可以设置如下结构:

func determineDataSource()
{
  switch category
  {
    case "Restaurant":
      print("restaurant")
.
.
.
}