Ich versuche, einen UITableViewController
als RootController von AppDelegate
ohne Storyboards zu starten.Programmgesteuertes Laden von UITableViewController ohne Storyboards
Hier ist meine TasksTableViewController:
class TasksTableViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
Die NIB-Datei TasksTableViewController
genannt wird. Die Ansichtseigenschaft der TasksTableViewController
ist an eine UITableView
Steuerung an der Spitze angeschlossen.
Die AppDelegate
sieht wie folgt aus:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
window = UIWindow(frame: UIScreen.mainScreen().bounds)
let controller = TasksTableViewController(nibName: "TasksTableViewController", bundle: nil)
window?.rootViewController = controller
window?.makeKeyAndVisible()
return true
}
Ich sehe ein schwarzer Bildschirm. Es gibt keine Datenbindung an die UITableView
Kontrolle, aber ich hatte gehofft, ein leeres uiTableview-Steuerelement zu sehen und nicht den schwarzen Bildschirm. Was mache ich falsch?
UPDATE:
Hier ist der Code, es funktioniert habe:
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
let controller = TasksTableViewController(nibName: "TasksTableViewController", bundle: nil)
if let window = self.window {
window.backgroundColor = UIColor.blueColor()
window.rootViewController = controller
window.makeKeyAndVisible()
}
return true
}
Es sollte auch genug sein, um 'nil' an' nibName' zu übergeben. Überprüfen Sie Ihre 'Info.plist' - es gibt einige Eigenschaften, die erzwingen, dass window & root controller vom Storyboard geladen wird und sie müssen deaktiviert sein, wenn Sie Ihr Projekt aus einer Storyboard-Vorlage erstellt haben. – Sulthan
Ich würde auch empfehlen, eine Hintergrundfarbe zu Fenster und eine Hintergrundfarbe zu Ihrem Controller zu setzen. Das sollte dir sagen, was das Problem ist. – Sulthan
Ich denke, Sie müssen eine Datenquelle definieren und die Tabelle view.count –