當我使用UITableViewController創建tableView時,會得到很多覆蓋函數,但是當您使用常規的UIViewController時,使用這些覆蓋函數時會出錯,將其改爲常規功能。我相信這就是爲什麼我的核心數據不會加載到我的單元格中,並試圖使用viewDidLoad函數來加載我的數據。Swift - 在UIViewController中覆蓋函數與UITableViewController
我知道我的代碼應該工作,因爲我所要做的就是將所有代碼從UITableViewController轉移到UIViewController,並且我的代碼在我的UITableViewController中工作。
我迄今爲止的努力:
override func viewDidLoad() {
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// Configure the cell...
let CellID:NSString = "CELL"
var cell:UITableViewCell = tableView.dequeueReusableCellWithIdentifier(CellID) as UITableViewCell
if let ip = indexPath as Optional {
var data:NSManagedObject = myList[ip.row] as NSManagedObject
cell.textLabel!.text = data.valueForKeyPath("username") as? String
}
return cell
}
}
是覆蓋功能我細胞是空的原因,還是有其他方面的使用普通的UIViewController表現出的tableView什麼時候?
任何建議,將不勝感激。
我已經添加了UITableViewDelegate,正如我所說的應用程序運行,它只是不填充表。我也嘗試過viewDidLoad之外的cellForRowAtIndexPath函數,但是這不起作用。至於把代表設置爲「自我」,我不太清楚你的意思,所以我不能回答這個問題。但正如我所說,我所做的只是將我的代碼從tableViewController轉移到viewController,添加了UITableViewDelegate並在某些函數前刪除了「覆蓋」。 – martin
@ frank21 1.您需要「覆蓋」。現在您已經添加了UITableViewDelegate,請嘗試再次輸入tableview委託函數。他們應該自動完成以包含覆蓋。 –
2.您需要以編程方式將tableview的委託設置爲self(即'self.tableView.delegate = self')或使用界面構建器,例如:http://stackoverflow.com/a/19216613/2274694 –