2015-09-28 34 views
0

所以我有这个问题,我必须在两个集合视图和一个表视图加载一个实体。事情是,主要是我只需要在桌面视图所在的VC上加载一个实体。并且该数据实体有这些参数,即:加载coredata两个收集视图和一个表视图在swift

  • 发动机型(柴油或汽油)
  • 车色
  • Max.velocity
  • 生产年份现在

,主点是,根据汽车发动机的类型为桌面上的单元着色。因此,如果数据实体“Car”的Bool值为“isEngineDiesel”= true,那么该单元格将为橙色,如果为false,则它将呈浅蓝色。这工作得很好,一个简单的if语句在表视图委托方法加载这样的单元格。但是,现在我不得不实施另一个具有两个收集视图的VC,其中第一个仅装载柴油发动机车辆实体,另一个装载汽油类型。 所以我想这个问题已经清楚了。我怎样才能做到这一点?因为经过无数个小时的实验,我唯一的想法是两个使两个实体的其中一个是DieselCar和另一个PetrolCar。但是这意味着改变完整的数据结构,而不是一个表格视图,我实际上需要两个表格,这看起来不是一个好主意,因为它会“溢出”所有数据。

所以......任何想法男性?

编辑:

到目前为止,我只设法让细胞冠军,但细胞数量的返回值仍然是如何解决是一个谜。 收集视图委托的代码:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 

    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! CollectionViewCell 
    if let carData = fetchedResultsController?.objectAtIndexPath(indexPath) as? Car { 

    cell.layer.cornerRadius = 20 
    cell.layer.masksToBounds = true 


     if collectionView == collectionViewDiesel { 
      if carData.isEngineDiesel == true { 
       cell.backgroundColor = UIColor(netHex: 0x8DF060) 
       // Display the cell name 

       cell.cellTitle.text = carData.cellTitle 
      } 
     }else if collectionView == collectionViewPetrol { 
      if carData.isCarDiesel == false { 
       cell.backgroundColor = UIColor(netHex: 0xEB9B2D) 
       // Display the cell name 

       cell.cellTitle.text = carData.cellTitle 
      } 
     } 
    } 
    return cell 
} 

这是我需要回答的方法:你需要两个收集意见的数据结构

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 

    return 5 
} 

回答

0

在其他VC,所以我觉得让从字典isEngineDiesel上的数据库如果为true,则将对象添加到一个数组中,如果在另一个数组中为false,则将这些数组设置为相应的柴油和汽油钥匙。 在你的集合视图委托总是有一个UICollectionView参数的地方检查(你可以使用标签或甚至==运算符,如果你有插座)从字典的基础上加载数据键。

+0

恩,是的,我想到了,但由于它是一个大型实体,所以我们将非常感谢一个示例代码。另外为了防止别人遇到这个问题的记录。 – Petar

+0

如果它是一个庞大的实体,你可以直接使用谓词 – Imran

+0

将数据加载到相应的数组中。我可以使用示例数据发布集合视图委托函数的示例,但不能与整个场景 – Imran

相关问题