将“详细信息视图”添加到UITableView

时间:2010-08-22 12:14:37

标签: iphone uitableview uiview

我有一个带有多个视图控制器的UITabbar。其中一个是UITableView。 tableview存储在一个nib中,文件所有者是一个UITableViewController。

一旦选择了表格单元格,我希望tableview显示“详细视图”(带有UILabel和其他元素的自定义视图)。我的方法是将新的详细信息视图作为子视图添加到UITableView:

[self.view addSubView:[detailsViewController view]]

不幸的是,这并没有产生我想要的效果。作为UITableView的子视图,我可以滚动到添加的详细信息视图之外并查看基础表条目。 UINavigationBar是一个选项,但由于没有更深层次的层次结构,我更喜欢带有关闭按钮的简单自定义视图。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

用UIViewController替换你的UITableViewController。然后将UITableView添加到视图控制器。将表视图的委托和数据源设置为视图控制器。 现在,您可以在非滚动视图控制器中添加子视图,仍然具有您的tableview:)。

修改 或者,您可以在弹出视图出现时停止滚动表格。

[(UIScrollView *)self.view setScrollEnabled:NO];
CGRect rect = self.popupview.frame;
rect.origin.y = [(UIScrollView *)self.view contentOffset].y;
self.popupview.frame = rect;

答案 1 :(得分:0)

如果您只想在用户点击特定单元格时创建弹出窗口(模态视图),请执行以下操作。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

// If the view you want to present modally is called DetailViewController, do the following.

DetailViewController *dvCon = [[dvCon alloc] initWithNibName:@"DetailViewController" bundle:nil];

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:dvCont];
[self presentModalViewController:navigationController animated:YES];

[navigationController release];
[dvCont release];   


}
祝你好运!