10

当我使用 aTableViewController时,我可以在故事板中设置我的所有内容。由于我在表格视图中使用静态单元格而不是动态属性,因此我发现这种方法更方便且更易于实现。我连接了新的 UITableView 类并简单地删除了所有的委托方法。就像故事板中设置的所有内容/按钮一样,它就像一个魅力。

我正在尝试完成相同的结果,除了这一次,我必须在 a 内工作ViewController并将 a 添加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;
}

如果 myTableView设置为Dynamic Properties效果很好: 在此处输入图像描述

但是当我将表格视图内容更改为静态单元格并删除委托方法时,我的应用程序崩溃了。那么,如何将带有静态单元格(我可以在情节提要中操作)的表格视图添加到我的ViewController

4

3 回答 3

29

这是你可以做的。在您的故事板中,创建一个包含所有非 tableview 视图的父视图控制器,创建一个 UITableViewController。在您的父视图控制器中,创建容器视图,删除它自动添加的视图控制器,然后右键单击并从容器视图拖动到您的 UITableViewController 以创建嵌入 segue。您的最终结果应如下所示:

在此处输入图像描述

于 2013-11-01T16:44:41.410 回答
1

您仍然需要做几件事:
添加<UITableViewDataSource, UITableViewDelegate>到您的 @interface 声明中。
然后你也可以在 Interface Builder 中设置这些。
实现cellForRowAtIndexPath并调用该dequeueReusableCellWithIdentifier方法以返回单元格。

对不起我错了。事实是你不能使用没有UITableViewController. 对不起。

一个解决方案可能是您创建两个控制器,然后将view表视图控制器添加到您的另一个视图控制器。

于 2013-11-01T16:09:34.450 回答
1

据我所知,你不能直接这样做。至少在 iOS 6 中,使用静态单元格时必须使用 UITableViewController。在 UIViewController 中使用静态表视图的一种方法是在 IB 中添加容器视图,并使嵌入式控制器成为表视图控制器(删除您自动获得的 UIViewController,拖入 UITableViewController,并将其与嵌入继续)。您可以通过实现 prepareForSegue:sender: 并使用 destinationViewController 属性(将指向表视图控制器)从 UIViewController 获取对此表视图控制器的引用。

于 2013-11-01T16:20:06.110 回答