我是iOS和Objective-C的新手,在理解控制器的工作方式方面遇到了一些麻煩。UITableViewController在UIViewController中
在我的代碼我有一個UIViewController(與故事板分配我的自定義控制器),並在其內部,與其他物體放在一起,我想有一個不同的控制器處理的表。什麼是正確的方法來做到這一點?
我是iOS和Objective-C的新手,在理解控制器的工作方式方面遇到了一些麻煩。UITableViewController在UIViewController中
在我的代碼我有一個UIViewController(與故事板分配我的自定義控制器),並在其內部,與其他物體放在一起,我想有一個不同的控制器處理的表。什麼是正確的方法來做到這一點?
您可以使表視圖控制器UIViewController中的一個子視圖控制器。在故事板中,您可以通過將容器視圖拖動到控制器視圖中來輕鬆完成此操作,並且會自動爲您提供子視圖控制器。你需要刪除它給你的控制器(它只是一個UIViewController),拖出一個表視圖控制器,控制從容器視圖拖動到表視圖控制器,並選擇「嵌入」。如果你需要從UIViewController獲得對這個表視圖控制器的引用,你可以在prepareForSegue中做到這一點 - 表視圖控制器將是segue的目標視圖控制器,而prepareForSegue將在控制器實例化後立即調用。
這正是我所期待的,謝謝! – Heisenberg
沒有故事板會怎麼做?在正常的xib文件中。任何想法?謝謝 – Malloc
@Malloc,你在代碼中使用自定義容器控制器api(它在UIViewController類的引用中有它自己的部分)做到這一點。基本上,你可以調用addChildViewController:在你的父控制器上傳遞你想要成爲孩子的控制器。然後你調用didMoveToParentViewController:在子節點上傳遞父節點作爲參數。最後,將子視圖添加爲父視圖的子視圖。 – rdelmar
添加到的UITableViewController故事情節,創造的UITableViewController的子類(新文件)。在Storyboard中,轉到Identity Inspector並在您創建的子類的Class字段類型名稱中。之後,您必須根據您的要求添加您的應用程序邏輯。
在故事板製作其他的UITableViewController,去其檢查,併爲其分配您已經之前創建相同的UITableViewController類...
的*這樣做,是讓你的UITableView由包含它使用UITableViewControllerDelegate的控制的UIViewController的正確方法*。一個良好的開始是https://developer.apple.com/library/ios/documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html –
我知道,但我想有兩個不同的控制器,因爲我已經有另一個UITableView的UITableViewController,我想使用相同的代碼。 – Heisenberg