当我使用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
?
答案 0 :(得分:28)
这是你能做的。在故事板中,创建一个包含所有非tableview视图的父视图控制器,创建一个UITableViewController。在父视图控制器中,创建容器视图,删除它自动添加的视图控制器,右键单击并从容器视图拖动到UITableViewController以创建嵌入segue。你的最终结果应该是这样的:
答案 1 :(得分:1)
你还需要做几件事:
将<UITableViewDataSource, UITableViewDelegate>
添加到@interface声明中
然后您也可以在Interface Builder中设置它们
实施cellForRowAtIndexPath
并调用dequeueReusableCellWithIdentifier
方法返回单元格。
UITableViewController
,您就无法使用静态单元格。抱歉。
解决方案可能是您创建了两个控制器,只需将表视图控制器的view
添加到其他视图控制器即可。
答案 2 :(得分:1)
据我所知,你不能直接这样做。至少在iOS 6中,使用静态单元格时必须使用UITableViewController。在UIViewController中使用静态表视图的一种方法是在IB中添加容器视图,并使嵌入式控制器成为表视图控制器(删除自动获取的UIViewController,在UITableViewController中拖动,并将其与嵌入器连接起来Segue公司)。您可以通过实现prepareForSegue:sender:和使用destinationViewController属性(将指向表视图控制器)从UIViewController获取对此表视图控制器的引用。