[英]How to programmatically populate a static UITableView from the storyboard?
我正在嘗試創建類似於iOS設置的“ 關於”部分的UITableView。 我有我的初始表視圖,該表視圖是我動態填充的(已經在工作),並且每個表項都有公開指示器。 當我單擊該視圖中的項目時,我告訴導航控制器滑到靜態UITableView(如下圖所示)。 我使用情節提要的ID實例化了情節提要中的靜態表格視圖,並在過渡到它之前,我想根據其在初始表格視圖中所描述的項,用動態值填充它。 基本上,如何在代碼的靜態表格視圖中設置單元格的“ 右詳細信息”部分。
我正在尋找的偽代碼是這樣的(存在於初始表視圖的控制器類中):
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let customData: [String:String] = getDataForCell(atIndexPath: indexPath)
let descriptionView = storyboard?.instantiateViewControllerWithIdentifier("keyDetails") as! KeyDetailsController
descriptionView.getCell(forRow: 0, inSection: 0).rightDetail.text = customData["serverName"]! // changes "A Fake Server" to an actual server name
}
總結一下我們在聊天中的討論:要更新這些標簽,只需創建對標簽的IBOutlet
引用。
此處的關鍵問題是,您在實例化視圖控制器后立即嘗試更新這些出口。 但是,在加載視圖之前,不會配置出口,這是在過渡到新場景的過程中發生的事情。 因此,您應該:
在目標控制器中創建String
(或其他)屬性;
實例化視圖控制器后,填充這些屬性。 您在哪里執行此操作取決於您如何過渡到下一個場景:
如果過渡到下一個場景編程方式(通過showViewController
, presentViewController
或navigationController.pushViewController
),然后設置這些權之后您調用instantiateViewControllerWithIdentifier
; 要么
如果使用segue,請在prepareForSegue
設置這些String
屬性。
在目標視圖控制器的viewDidLoad
中,獲取這些String
屬性並更新具有`IBOutlet引用的控件。
有關更多信息,請參見在視圖控制器之間傳遞數據 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.