2017-02-15 27 views
0

ich jetzt zu schnelle 3 Verschieben und ich ein Problem mit dem Tableviews konfrontiert, wenn ich eine Tabellenansicht erstellen (in einem Viewcontroller) und eine Verbindung zu einer Klasse ich diesen Fehler:swift 3 Tableview Crash

-[UITableViewController loadView] instantiated view controller with identifier "UIViewController-gdE-bi-3N4" from storyboard "Main", but didn't get a UITableView 

ich weiß nicht, was das Problem ist und es macht mich verrückt, hier ist mein Code:

import UIKit 

class FindFriendVC: UITableViewController { 

    @IBOutlet weak var results: UITableView! 


    override func viewDidLoad() { 
     super.viewDidLoad() 

     self.results.dataSource = self 
     self.results.delegate = self 
    } 



    // MARK: - Table view data source 

    override func numberOfSections(in tableView: UITableView) -> Int { 
     // #warning Incomplete implementation, return the number of sections 
     return 0 
    } 

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     // #warning Incomplete implementation, return the number of rows 
     return 0 
    } 
} 
+0

Überprüfen Sie, ob 'Ergebnisse' IBOutlet richtig verbunden ist. Es scheint, dass Ergebnisse mit etwas verbunden sind, das nicht 'UITableView' ist. – sasquatch

+0

@no one In Ihrem Storyboard müssen Sie die Stammansicht Ihres UITableViewControllers ein UITableView –

Antwort

0

Warum erstellen Sie eine zusätzliche UITableViewIBOutlet?

Jede UITableViewController hat eine implizite Eigenschaft tableView mit vorverbundenen und Delegate.

@IBOutlet weak var results: UITableView! 
... 
self.results.dataSource = self 
self.results.delegate = self 

löschen und die tableView Eigenschaft verwenden.

+0

Ich benutze eine normale Ansicht Controller, deshalb muss ich die Tabelle verbinden –

+0

Dann ist Ihr Code verwirrend. Es ist definitiv eine Unterklasse von * UI ** Table ** ViewController *. – vadian

+0

@no man kann klarer sein, was alle Schritte haben Sie getan? –

0

ich nicht denken, dass Sie in den Tableview-Controller benötigen die IBOutlet - das ist etwas, das Sie gerade brauchen Wenn Sie einen regulären ViewController mit UITableView-Delegaten verwenden, um die Tabelle zu steuern.

Edit: Was ich in der Regel tut, ist einen UITableView zu einem regelmäßigen Viewcontroller im Builder hinzufügen, klicken Sie rechts zieht aus dem Tableview auf das Viewcontroller-Symbol (gelben Kreis mit weißem Quadrat)

enter image description here

und verbinden der Delegierte & Datenquelle. Fügen Sie dann die UITableViewDelegate- und UITableViewDataSource-Klassen zum View-Controller hinzu. & Verbinden Sie die TabelleView numberOfSections & numberOfRowsInSection wie oben, außer dass Sie den gesamten Code in die ViewController-Klasse und nicht die UITABleViewController-Klasse einfügen.

Hoffe, dass hilft.

+0

Ich benutze einen regulären View-Controller, deshalb muss ich das TableView verbinden –

+0

check out the edit Ich habe gerade gemacht – Trev14

+0

Entschuldigung Ich identifizierte das Problem, als ich zu swift 3 wechselte Ich habe die Docs XD missverstanden, brauche ich wirklich etwas Schlaf! jedenfalls habe ich das Problem gelöst, dass ich dumm war! danke –

Verwandte Themen