2015-01-07 2 views
-1

Я пытаюсь передать значения массива в tableview. @ // 4 println(items) печатает массив со значениями на моей консоли. Я хочу, чтобы эти результаты были переданы в tableview. Рабочий стол работает, но получает его значение от var list: [String] = ...Swift: Как передать элементы массива в tableview

Как получить println(items) в var list: [String] = ...?

Спасибо!



import UIKit 

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 

    @IBOutlet weak var tableView: UITableView! 
    var list: [String] = ["Row One", "Row Two", "Row Three" , "Row Four", "Row Five"] 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell") 

     var results = "today" 
     var subItem = "movie" 

     // hier moet de opegslagen bioscoop komen die door de gebruiker is opgeslagen als keuze 
     var cinemaFilter = "Pathé Arena" 

     // Get the Cinema's from scraper and SwiftyJSON 
     DataManager.getCinemaDataFromScraperWithSuccess { (ScraperData) -> Void in 
      let json = JSON(data: ScraperData) 
      if let itemName = json["results"][results][0][subItem]["text"].stringValue { 
       println("Film resultaten:") 
      } 
      //1 
      if let itemArray = json["results"][results].arrayValue { 
       //2 
       var items = [itemModel]() 

       //3 
       for itemDict in itemArray { 
        var itemName: String? = itemDict[subItem]["text"].stringValue 
        var itemTime: String? = itemDict["time"]["text"].stringValue 
        var itemCinema: String? = itemDict["cinema"]["text"].stringValue 

        if itemCinema == cinemaFilter { 
         var item = itemModel(name: itemName, time: itemTime, cinema: itemCinema) 
         items.append(item) 
        } else { 
         //println("is niet de ingestelde bioscoop") 
        } 

       } 

       //4 
       println(items) 
      } 
     } 
    } 
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return self.list.count; 
    } 

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell 

     cell.textLabel?.text = self.list[indexPath.row] 

     return cell 
    } 

    func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) { 
     println("You selected cell #\(indexPath.row)!") 
    } 

} 
+0

Я не знаю, что вы хотите сделать. Вы играете с каким-то «itemArray», но ваш вид таблицы принимает данные из 'list' –

+0

Я хочу данные itemArray в представлении таблицы. Tableview получает его данные из списка, поэтому я решил, что мне нужно каким-то образом передать элементы ItemsArray в список. – user1242574

ответ

0

Сделать items переменной экземпляра контроллера представления вместо локальной переменной, используйте его в методах источника данных, и избавиться от list.

Вам необходимо решить, какую часть item вы хотите показать в cell.textLabel?.text, название, время, кинотеатры или какую-то комбинацию.

0

Вместо var items = [itemModel]() внутри func поместите его на класс lavel, так что это пример. Затем измените

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return self.items.count; 
} 

и метод ячейки, чтобы использовать элементы.

Смежные вопросы