2016-04-21 120 views
0

我在集合視圖中顯示數據下面的數據。如何將值從收集視圖傳遞到表視圖

我的JSON數據是這樣的:

data { 

type : max 
id : 1234 

type : vete 
id : 3445 

type : tomoe 
id : 2220 

type : matye 
id : 9087 

} 

同樣喜歡每種類型有像一些數據,例如:

類型:最大 ID:1234

這上述類型有:

[ 
{ 
name : max 1 
description : masncj 

name : max 1 
description : masncj 


name : max 2 
description : masncj 


name : max 3 
description : masncj 


name : max 4 
description : masncj 


} 
] 

並且我在表格視圖中顯示上述數據名稱,說明。

現在我需要的是,當我點擊任何數據類型名稱,如max,vete,tomoe等在集合視圖中。

我需要重定向到表格視圖作爲push segue,並在該表格視圖中我需要顯示相應的數據。

就像我在集合視圖中按下max類型名稱單元格 - 那麼它必須重定向到表格視圖,在那裏我需要填充max1,description。

我需要爲此使用一個集合視圖和一個表視圖控制器。

如何傳遞類型ID以及如何查看各自的數據 - 當我在集合視圖中按下任何數據時 - 我需要鎖定相應的數據名稱,表格視圖中的描述?

回答

1

首先使用Storyboard創建一個從CollectionViewVC到TableViewVC的segue,並給它一個類似「collection_to_table」的標識符名稱。

兩個視圖控制器

var typeId = "" 

現在CollectionViewVC在點擊式創建一個變量名TYPEID,在CollectionViewVC

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 
     if segue.identifier == "collection_to_table" 
     { 
      let secondVC : TableViewVC = segue.destinationViewController as! TableViewVC 
      secondVC.typeId = typeId 
     } 
    } 
執行此

typeId = <actualTypeId> //This is dynamic value from your json 
performSegueWithIdentifier("collection_to_table", sender: self) 

現在覆蓋的方法

現在你在TableView中有了typeId值你可以用它來獲取信息。

希望這對你有所幫助。如果你覺得很難理解,請告訴我。

+0

感謝您solution.But居然在我的收藏view.swift在我tableviewcontroller.swift我必須分配'VAR TYPEID = 「」 '然後在我的集合視圖vc ..on type Id = 的意思是..我必須動態顯示。因爲我現在有一些5數據和5 typ類型的id.So可能是5數據可以chnage到50未來的知道。那麼我如何分配類型,如果價值? – user5513630

+0

而且..我需要顯示名稱,描述基於我的單元格在集合視圖中的點擊操作...所以通過這個執行seague ....我也可以顯示名稱,描述.....當我點擊任何單元名稱? – user5513630

+0

在集合視圖上單擊您將具有視圖的位置。從那個位置你可以分配一個id給那個typeId變量。你必須有一個類型的列表? 。你能告訴我你如何將數據提供給收藏視圖? – imagngames

0

1.

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{ 

    @IBOutlet weak var tblview: UITableView! 

    var fruit = ["tomato","mango","orange","banana","apple"] 

    var fruitsimg : NSMutableArray = ["tomato_small.png","images-1.jpg","fruit-1218149_960_720.png","4164249-fruit-images.jpg","5135668-fruit-images.jpg",] 





    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, t/Users/agile-14/Desktop/4164249-fruit-images.jpgypically from a nib. 


    } 


    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 

     return 20 

    } 

    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { 

     return 20 
    } 

    func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) 
    { 
     view.tintColor = UIColor.red 


    } 

    func tableView(_ tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) { 


     view.tintColor = UIColor.yellow 
    } 

    func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { 

     return fruit[section] 

    } 





    func numberOfSections(in tableView: UITableView) -> Int { 
     return 1 
    } 


    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return fruit.count 

    } 

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

     let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)as! TableViewCell1 

     cell.lbl1.text = fruit[indexPath.row] 
     cell.img1.image = UIImage(named: fruitsimg[indexPath.row] as! String) 
     cell.img1.layer.cornerRadius = cell.img1.layer.frame.height/2 

     cell.img1.clipsToBounds = true 
     cell.img1.layer.borderWidth = 2 
     cell.img1.layer.borderColor = UIColor.black.cgColor 

     return cell 
    } 

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 

     var vc1 = storyboard?.instantiateViewController(withIdentifier: "collViewController") as! collViewController 
     vc1.arr = fruitsimg 
     //vc1.str = fruitsimg[indexPath.row] 


     self.navigationController?.pushViewController(vc1, animated: true) 

    } 

2.

class collViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource{ 

    @IBOutlet var coll: UICollectionView! 
    var arr : NSMutableArray = [] 
    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
    } 


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

     return arr.count 
    } 

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 

     let cell = coll.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath)as! CollectionViewCell1 

     cell.img2.image = UIImage(named: arr[indexPath.row] as! String) 

     return cell 

    } 
相關問題