[英]How to setup a static UITableView as a subview of UIView?
當我使用TableViewController
我能夠在故事板中設置我的所有內容。 由於我在表格視圖中使用靜態單元格而不是動態屬性 ,因此我覺得這種方法更方便,更容易實現。 我掛鈎新的UITableView類,只是刪除所有委托方法。 像故事一樣工作,因為所有內容/按鈕都在故事板中設置。
我試圖完成相同的結果,除了這次,我必須在ViewController
工作並添加一個TableView
作為子視圖。 一旦我連接了正確的類,添加我的插座連接並設置以下代理:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MainCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
return cell;
}
如果我的TableView
設置為動態屬性,這很有效 :
但是,當我將表格視圖內容更改為靜態單元格並刪除委托方法時,我的應用程序崩潰了。 那么,如何將靜態單元格 (我可以在故事板中操作)的表格視圖添加到我的ViewController
?
這是你可以做的。 在故事板中,創建一個包含所有非tableview視圖的父視圖控制器,創建一個UITableViewController。 在父視圖控制器中,創建容器視圖,刪除它自動添加的視圖控制器,右鍵單擊並從容器視圖拖動到UITableViewController以創建嵌入segue。 您的最終結果應如下所示:
你還需要做幾件事:
將
<UITableViewDataSource, UITableViewDelegate>
添加到@interface聲明中。
然后您也可以在Interface Builder中設置它們。
實現
cellForRowAtIndexPath
並調用
dequeueReusableCellWithIdentifier
方法以返回單元格。
對不起我錯了。 事實是,如果沒有UITableViewController
你就無法使用靜態單元格。 抱歉。
解決方案可能是您創建兩個控制器,只需將表視圖控制器的view
添加到其他視圖控制器。
據我所知,你不能直接這樣做。 至少在iOS 6中,使用靜態單元格時必須使用UITableViewController。 在UIViewController中使用靜態表視圖的一種方法是在IB中添加容器視圖,並使嵌入式控制器成為表視圖控制器(刪除自動獲取的UIViewController,在UITableViewController中拖動,並將其與嵌入器連接起來Segue公司)。 您可以通過實現prepareForSegue:sender:和使用destinationViewController屬性(將指向表視圖控制器)從UIViewController獲取對此表視圖控制器的引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.