UITableView中所有级别上的项目的多级别类别

时间:2014-02-13 18:01:36

标签: ios uitableview

我必须使用下面的UITableView响应(数组)创建JSON。我还没有这方面的代码,但是我希望如何分割这个数组以适应所有级别的类别和项目。

 {
   "result":{
      "products":[
         {
            "id":"4",
            "product_code":"PR04",
            "title":"Product1",
            "franchisee_id":"118"
         }
      ],
      "categories":[
         {
            "id":"8",
            "name":"Category1"
         },
         {
            "id":"20",
            "name":"Category2",
            "products":[
               {
                  "id":"9",
                  "product_code":"PR07",
                  "title":Product2,
                  "franchisee_id":"118"
               }
            ]
         }
      ]
   }
}

我想达到以下结果:

  • 项目
  • 类别1>项目
  • Category2>物品

单击某个类别时,它将滑动到该类别中的产品。真的很喜欢这个方向。有些产品不属于类别。就像上面的例子一样。

1 个答案:

答案 0 :(得分:3)

<强>好...

  1. 您需要解析JSON文件。你可以轻松谷歌搜索一些教程,但here is a decent one

  2. 接下来,您需要设置UITableView来加载项目。 another good tutorial on UITableViews

  3. 然后,您将需要了解如何在UIViewController之间传递数据。 Tutorial

  4. 因此,您在代码中的步骤将是:

    1. 解析JSON以分隔所有元素。
    2. 设置UITableView以显示顶级元素。
    3. 创建第二个UITableViewController以在选择顶级项目后推送到。
    4. 为第二个UITableViewController设置自定义初始值设定项,以便您可以从解析JSON的第一个视图控制器传递相关数据。
    5. 我假设你正在寻找一堆关于如何做到这一点的代码,但这并不好玩:)

      如果您遇到任何麻烦,请告诉我,我很乐意提供帮助。

      修改

      我知道我说我不会转码但是我有一些额外的时间。

      创建一个名为NSObject的{​​{1}}子类,并使ProductObject看起来像这样:

      .h

      不要对#import <Foundation/Foundation.h> @interface ProductObject : NSObject @property NSString *productCode, *productTitle, *franchiseId, *productId; @end

      做任何事情

      创建另一个名为.m的{​​{1}}子类,并使NSObject看起来像这样:

      CategoryObject

      同样,不需要对.h执行任何操作。


      现在,在要显示#import <Foundation/Foundation.h> @interface CategoryObject : NSObject @property NSString *categoryName, *categoryId; @property NSArray *products; @end 的班级中,产品和类别(这一切都在.m中,UITableView为空):

      .m

      编辑:

      如果您想像手风琴一样打开和关闭桌子的某些部分,请查看Apple的相同代码:Table View Animations and Gestures