2015-09-28 81 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

相關問題