2016-07-26 7 views
-1

Ich habe einen ViewController als Unteransicht zu UIWindow hinzugefügt & hinzugefügt einen tableView innerhalb der Ansicht Controller, aber während ich klopfe App Abstürze im Gerät & Zellen verschwinden im Simulator Strange Issue !!!Tabellenansicht Zellwasserhahn Crashed

this is the error

class func addSideMenu(viewControllerName : String)->UIView{ 
    let storyboard = UIStoryboard(name: MAIN_STORYBOARD, bundle: nil) 
    let vc = (storyboard.instantiateViewControllerWithIdentifier(viewControllerName)) 
    vc.view.frame = CGRectMake(-(UIScreen.mainScreen().bounds.width + 100),0, UIScreen.mainScreen().bounds.width - 100, UIScreen.mainScreen().bounds.height) 
    print(vc.view.frame) 
    vc.view.tag = 200 
    return vc.view 
} 


newView = Utilities.addSideMenu("SideMenuViewController")   

UIApplication.sharedApplication().delegate?.window!!.addSubview(newView!)

+0

Was ist die Nachricht in der Debug-Konsole? – Bienemann

+0

Kann dir nicht helfen, ohne deinen Code zu sehen, den Konsolenfehler usw. Editiere deine Frage und füge diese Details hinzu –

+0

keine Fehler in der Konsole nur bekomme ich einen Hauptthread Fehler – samad5353

Antwort

0

Es ist eine schlechte Idee, einen View-Controller, um seine Ansicht zu erstellen, und dann außerhalb des Gültigkeitsbereichs der Controller fallen lassen. Wenn Sie das tun, werden alle Abhängigkeiten innerhalb der Ansicht - wie beispielsweise Delegatfunktionen für die Tabellenansicht - wahrscheinlich abstürzen.

Sie sollten entweder so lange an der Steuerung festhalten, wie Sie die Ansicht verwenden, oder, wenn Sie die Steuerung entsorgen müssen, sicherstellen, dass keine Verbindungen zur Ansicht bestehen.

0

Ihre View-Controller sollten eine Unterklasse von UIViewController oder UITableViewController sein, damit umgehen Sie die geerbten Abhängigkeiten und verursachen unerwünschtes Verhalten.

Auch Ihre Ansicht Controller sollte tableView.delegate = self und tableView.dataSource = self in Ihrem Initialisierer haben oder viewDidLoad() Das könnte ein Teil des Problems für Ihren Fall sein.