2015-07-28 29 views
17

Mam ViewController w MainstoryBoard. Dodałem do niego TableView .Swift: TableView w ViewController

MainStoryBoard:

enter image description here

Ponadto Mam tablicę poza klasą ViewController i chcę obiektów wewnątrz tablicy mają być pokazane w TableView.

Nie mogę wymyślić, jak to zrobić. Połączyłem delegata między TableView i ViewController.

+1

odnieść ten link http://www.ralfebert.de/tutorials/ios-swift-uitableviewcontroller/ https://www.weheartswift.com/how-to-make-a-simple-table-view-with -ios-8-and-swift/ –

+1

@DharmeshDhorajiya Świetnie, działa! "weheartswift" ma odpowiedź – Eliko

+1

Witaj w każdej chwili @Eliko ci, co jest w porządku na google. –

Odpowiedz

30

Dodajesz nową zmienną instancji tableview poniżej deklaracji klasy.

@IBOutlet 
var tableView: UITableView! 

Aby zachować zgodność z protokołem UITableViewDelegate i UITableViewDataSource prostu dodać je oddzielone przecinkami po UIViewController w deklaracji klasy

Potem musimy wdrożyć tableView(_:numberOfRowsInSection:), tableView(_:cellForRowAtIndexPath:) i tableView(_:didSelectRowAtIndexPath:) metod w klasie ViewController i pozostawić ich teraz pusty

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 
    ... 

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return 0 // your number of cell here 
    } 

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     // your cell coding 
     return UITableViewCell() 
    } 

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     // cell selected code here 
    } 
} 
+0

Myślałem, że to zadziała, ale kiedy dojdę do mojej funkcji do_table_refresh i zadzwonię: 'self.tableView.reloadData()' nie powiedzie się z 'fatalnym błędem: nieoczekiwanie znaleziono zero podczas rozpakowywania wartości Opcjonalnej ' –

+0

Musisz ustawić' self.tableView.delgate = self' i 'self.tableView.dataSource = self' w metodzie' viewDidLoad'. –

1

Mogę się spóźnić i być może naprawiłeś to już teraz. Otrzymywany błąd wynika ze zmiennej lub stałego zwracania wartości zerowej. aby to przetestować, możesz przypisać do niego wartość (twardy kod) i sprawdzić pełny kod, jeśli działa, a następnie zmienić go na twoją tablicę, niestety robię rzeczy programowo i niezbyt dobrze z storyboardem.

jeśli udostępnisz swój kod, pomożemy Ci, jeśli nie zostanie jeszcze posortowany.

Powiązane problemy