2014-10-07 3 views
4

Я создал контроллер таблицы, но его методы-делегаты не вызываются. Я ссылался на несколько веб-сайтов и не обнаружил ошибок в моем коде. Пожалуйста, помогите мне.Swift tableView метод делегата не набирается

class FriutsTableViewController: UITableViewController { 
var fruitsList : [AnyObject] = ["We", "love", "swift"]; 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let myCatalog = Catalog() 
    fruitsList = myCatalog.fruits; 
    //let view = ViewController() 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
} 

override func numberOfSectionsInTableView(tableView: UITableView!) -> Int { 
    return 0 
} 

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

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

    if !cell { 
     cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "fruitIdentifier") 
    } 

    cell!.textLabel.text = fruitsList[indexPath.row] as AnyObject! as String! 
    return cell 
} 

@objc func fetchFruits() { 

} 

Заранее спасибо.

+4

Try вернуть 1 в numberOfSectionsInTableView – derdida

+2

Вы настраиваете делегат таблицы в раскадровке или где-то в код? Вы должны. – djromero

+0

@derdida: Да, возврат не нуль отлично работает. Моя неудача - простая ошибка. Огромное спасибо. Плюс один для вас. – selva

ответ

7

Попробуйте

return 1 

в

numberOfSectionsInTableView. 
+1

Почему ради бога яблоки установили значение по умолчанию 0?!? Но спасибо за этот ответ –

2

Я советую вам просто создать проект приложения master-detail и посмотреть на код tableviewcontroller.

После вставки кода на Xcode есть несколько небольших проблем.

import UIKit //1. remember to import UIKit for UITableViewController 

//2. Do not return a UITableView! Instead, return a UITableView (without !) 
    override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
     return 0 // you should probably return 1 
    } 

//3.Same as above. remove ! from UITableView, NSIndexPath and UITableViewCell 
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell 

     let object = objects[indexPath.row] as NSDate 
     cell.textLabel?.text = object.description 
     return cell 
    } 

И, наконец, вы пропускаете окончание} для "класса FriutsTableViewController: UITableViewController {"

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