2016-12-15 75 views
-2

我是iOS開發新手,基本上我試圖用數組中的字符串值填充TableView。iOS Swift - TableView行爲空

但是,當我運行應用程序時,空白行顯示,並沒有顯示文本值。我有正確的編碼嗎?

import UIKit 

    class SelectIssueController: UIViewController, UITableViewDelegate, UITableViewDataSource { 

     @IBOutlet var issuesTableView: UITableView! 

     var issues = [Issue]() 

     override func viewDidLoad() { 
      super.viewDidLoad() 

      self.issues = ["Test1", "Test2", "Test3"] 

     self.issuesTableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell") 

     } 

     override var preferredStatusBarStyle: UIStatusBarStyle{ 
      return UIStatusBarStyle.lightContent 
     } 

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

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

      let cell = self.issuesTableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as UITableViewCell 

      cell.textLabel?.text = issues[indexPath.row] 

      //Even if I manually set a value, the rows are still blank 
      //cell.textLabel?.text = "Hello World" 

      return cell 

     } 
    } 
+2

你設置你的SelectIssueController實例是UITableView的數據來源? –

+0

您是否在談論參考插座? @LucasDerraugh如果是這樣,是的,我有:) – Dinuka

+2

tableView的dataSource在故事板或問題TableView.datasource = self –

回答

4

您可以通過兩種方式設置表視圖數據源和委託。 1.點擊Cntrl+dragtableViewview controller。參見下面的圖

enter image description here

  • 創建tableViewoutlet並分配其DataSource和代表在ViewDidLoad
  • 在你的榜樣,你已經有一個出口issuesTableView,所以你可以這樣寫:

    issuesTableView.dataSource = self 
    issuesTableView.delegate = self 
    

    謝謝:)

    +0

    愚蠢的我!這固定的問題哈哈:)我會在5分鐘內接受它 – Dinuka

    +0

    快樂編碼:) @Dinuka –

    +0

    我冒昧地更新你的答案有點@Karthick,希望你不介意(使用'issuesTableView'而不是'myTableView '建議2) – pbodsk