[英]Root View Controller Swift
我的應用程序委托中有一個函數,該函數將一個項目追加到名為ViewController.swift的文件中的數組中,然后我想在該文件中重新加載tableview。 我嘗試這樣做:
let vc = ViewController()
let navigationController = UINavigationController(rootViewController: vc)
window!.rootViewController = navigationController
println(vc.messages)
//1 vc.messages.append(message.data.message as! String)
//2 vc.MessageTableView?.reloadData()
第1,2行是我設置斷點的地方。 它似乎在編號2的行后中斷。
我得到的確切錯誤是
致命錯誤:解開Optional值時意外發現nil
我相信我的問題是我錯誤地設置了根視圖控制器。
窗口在頂部聲明。
如果我這樣運行我的代碼:
let vc = ViewController()
messages.append(message.data.message as! String)
vc.MessageTableView?.reloadData()
println(messages)
然后,我可以看到將正確的數據放入了數組(在這種情況下我將其設置為全局),但是該表在View控制器中沒有得到更新。
您的委托功能的實現是什么? 將表視圖放入情節提要中之后,必須將表視圖連接到ViewController.swift。 將控件從tableview拖動到viewcontroller的頂部(黃色圓圈),將出現一個黑色彈出窗口,執行兩次,每次單擊數據源並委托。 然后在viewcontroller.swift文件中實現它們在本教程中顯示的功能。 您無需修改AppDelegate.swift文件!
https://www.weheartswift.com/how-to-make-a-simple-table-view-with-ios-8-and-swift/
您必須在ViewController
重新加載數據將重新加載放入viewDidAppear()
或諸如此類
這是一個錯誤,因為您只是init
一個控制器,但是您的views
尚未准備好,它們正在初始化。 在viewDidLoad
之后,您可以調用views
,但不能在之前調用。
所以這就是你的table
nil
的原因
除此之外,為什么即使您沒有看到table
也需要重新加載table
,對嗎?
如果您希望viewcontroller成為rootviewcontroller,那么您只需在情節提要中單擊viewcontroller,然后在Utility-> Attributes inspector->選中“ is initial view controller”框即可。
https://www.dropbox.com/s/qfd9jqeos7ueq1w/Screen%20Shot%202015-06-25%20at%207.40.46%20PM.png?dl=0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.