2015-02-24 41 views
1

我之前跟着一個教程來了解故事板的基礎知識,並將該代碼用作編寫正在編寫的應用程序的參考。我想測試我的原型單元格佈局,但即使我在viewDidLoad中爲數組設置了值,它仍然拒絕顯示任何內容。iOS Swift Dequeued可重用單元格不顯示

import UIKit 

class DetailViewController: UIViewController { 

    var cards = [Card]() 

    @IBOutlet weak var cardsTableView: UITableView! 
    @IBOutlet weak var detailDescriptionLabel: UILabel! 


    var detailItem: AnyObject? { 
     didSet { 
      // Update the view. 
      self.configureView() 
     } 
    } 

    func configureView() { 
     // Update the user interface for the detail item. 
     if let detail: AnyObject = self.detailItem { 
      if let label = self.detailDescriptionLabel { 
       label.text = detail.description 
      } 
     } 
    } 

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

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     //példányosítunk egy cellát 
     let cell = tableView.dequeueReusableCellWithIdentifier("CardCell", forIndexPath: indexPath) as CardCell 
     //kivesszük a sor adatait a listából 
     let card : Card = self.cards[indexPath.row] 

     cell.setCardNumber(card.number) 
     cell.layer.cornerRadius = 8 

     return cell 
    } 


    override func viewDidLoad() { 
     super.viewDidLoad() 

      self.cards = [Card(number: 123456789,type: 1)] 

      dispatch_async(dispatch_get_main_queue(), { 
       self.cardsTableView.reloadData() 
    }) 
     self.configureView() 
    } 

} 

我從一個主從結構開始,我班裏的細節場景,以DetailViewController和類標識符原型的設置CardCell

class Card{ 
    let number: Int 
    let type: Int 

    init(number: Int, type: Int){ 
     self.number = number 
     self.type = type 
    } 
} 


import UIKit 
class CardCell: UITableViewCell { 

    @IBOutlet weak var cardNumber: UILabel! 

    func setCardNumber(number: Int){ 
     cardNumber.text = String(number) 
    } 
} 

我敢肯定,這是基本的東西,但是我現在第二天一直在搞這個。任何建議表示讚賞。

+0

當你點擊在故事板的原型電池,並期待在屬性檢查器中,你有沒有'CardCell'重用更多聲明標識符進入了嗎? – 2015-02-24 12:23:26

+0

IBOutlet是否連接到故事板?您的故事板中的原型單元是否屬於CardCell類? – 2015-02-24 12:23:46

+0

是的,是的,是的。 – 2015-02-24 12:47:33

回答

3

你必須設置表視圖的dataSource,我猜委託方法從來沒有被調用。

另外添加UITableViewDataSource,沒有必要的,但不僅僅是實現

class DetailViewController: UIViewController, UITableViewDataSource { 
+0

現在我的類定義是'class DetailViewController:UIViewController,UITableViewDataSource,UITableViewDelegate {'但仍然沒有運氣。 – 2015-02-24 13:24:29

+0

您是否在故事板中設置了數據源? – whatever0010011 2015-02-24 13:28:07

+2

@LanceToth你需要CTRL-從TableView拖動到ViewController並點擊「委託」和「數據源」。 – Fogmeister 2015-02-24 13:29:03

相關問題