2017-10-09 68 views
0

我有一個問題,其中我的自定義UITableView不會顯示,當我建立我的應用程序。Swift自定義UITableView沒有顯示在構建

目前,我已經構建了自定義表應該看起來像在我的故事板中,並且還創建了一個鏈接到UITableViewCell的可可類。

這是視圖控制器代碼與檢索輸入形成一個數組,然後將其粘貼到表

import UIKit 

struct eventStruct 
{ 
    let eventHost : String 
    let eventStatus : String 
    let eventPrice : String 
} 

class eventsViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { 

    var eventArrayData = [eventStruct]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     eventArrayData = [eventStruct(eventHost: "Event1", eventStatus: "OPEN", eventPrice: "$5"), 
           eventStruct(eventHost: "Event2", eventStatus: "CLOSED", eventPrice: "$0")] 
    } 

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

    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    { 
     let eventCell = tableView.dequeueReusableCell(withIdentifier: "eventTemplate", for: indexPath) as! eventsTableViewCell 

     eventCell.eventHost.text = eventArrayData[indexPath.row].eventHost 
     eventCell.eventPrice.text = eventArrayData[indexPath.row].eventPrice 
     eventCell.eventStatus.text = eventArrayData[indexPath.row].eventStatus 

     return (eventCell) 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 

所需要和/或幫助將是非常讚賞的任何額外信息的優惠!

+0

試加'self.tableView.reloadData()'在函數'viewDidLoad中的端部()'。 –

+0

我沒有看到你實現'numberOfSections'數據源方法。確保它返回的值大於0.還要大寫'EventsViewController',這不是一個需求,而是一個很好的編碼約定。 –

+0

@YunCHEN如果我添加了那行代碼,它會拋出一個「模棱兩可的引用給成員」 – hpcsolo

回答

2

你未將委託給您的視圖控制器

您可以連接您的代理兩種方式

1)使用viewDidLoad()功能

override func viewDidLoad() { 
     super.viewDidLoad() 

     yourTableVeiw.delegate = self 
     yourTableView.dataSource = self 
} 

2)使用storyboard

剛拖放您的視圖控制器

按照以下圖像

enter image description here

+0

你怎麼知道他沒有在IB連接它? :) –

相關問題