簡體   English   中英

如何將靜態UITableView設置為UIView的子視圖?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM