2017-07-06 8 views
0

Ich brauche einen Einstellungsbildschirm in meiner App, den ich mit einer einfachen statischen Tabellenansicht erstellen möchte. Leider bin ich auf ein Problem gestoßen. Wenn ich der Ansicht in meinem Storyboard einen benutzerdefinierten Ansichtscontroller zuweisen, wird die Views-Tabelle zur Laufzeit schwarz. DieseAnsicht mit Tabellenansicht funktioniert nur mit Standard View Controller

faulty static table example

ist trotz der View-Controller das Standardverhalten nicht ändern. Ich überschreibe an dieser Stelle nur eine Methode, um die Settings-Zeichenfolge in den Titel einzufügen.

import Foundation 
import UIKit 

class SettingsViewController: UITableViewController { 

    override func loadView() { 
     self.title = "Settings" 
    } 

} 

Wenn ich entfernen Sie die benutzerdefinierte Ansicht Controller die Tabelle normal erscheint. correct table

Ich segue in die Ansicht mit dem folgenden Code.

guard let vc = UIStoryboard(name:"Main", bundle:nil).instantiateViewController(withIdentifier: "settingsViewController") as? UITableViewController else { // or SettingsViewcontroller for the first version 
       print("Could not instantiate view controller with identifier of type SettingsViewController") 
       return 
      }    
self.navigationController?.pushViewController(vc, animated:true) 

Was könnte dieses Problem verursachen?

Antwort

2

Sie müssen anrufen super.loadView(), Sie überschreiben die UITableViewController's loadView() und nicht die Super-Klasse-Methode aufrufen, aufgrunddessen erhalten Sie schwarzen Bildschirm.

import Foundation 
import UIKit 

    class SettingsViewController: UITableViewController { 

     override func loadView() { 
      self.title = "Settings" 
      super.loadView() 
     } 

    } 
Verwandte Themen