我有一个纵向的应用程序,在我的视图控制器(UIViewController,而不是UITableViewController)中有一个表格(UITableView),它只占据半个屏幕。我将表视图的委托和数据源设置为视图控制器。
现在,当我选择表格中的任何单元格时,我想要显示一个详细视图。下面是我尝试过的方法,但什么都没有出现:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"SELECTED");
//ChangeView
DetailViewController *dvController = [[DetailViewController alloc]
initWithNibName:@"DetailViewController" bundle:nil];
[self.navigationController pushViewController:dvController animated:YES];
dvController = nil;
}有什么想法吗?这种解决方案比弹出式解决方案更好吗?
发布于 2012-05-02 18:32:08
你应该在nib文件中检查你的表视图,它的数据源和委托是否连接?只需将两者与文件所有者连接。
如果你使用uiview控制器,那么使用当前模型视图控制器,而不是推送模型视图控制器。
DetailViewController *dvc=[[DetailViewController alloc]initWithNibName:@"DetailViewController" bundle:nil];
[self presentModalViewController:dvc animated:YES];发布于 2012-05-02 18:30:51
将[NSBundle mainBundle]放在nil的位置。希望能有所帮助。告诉我发生了什么!还可以用[dvController release];替换dvController=nil;
编辑:将您的初始化函数替换为以下函数:
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
return self;
}发布于 2012-05-02 18:50:03
初始化导航控制器。因为有一段时间它是由于ui组件没有初始化。但是请记住,您可能需要面对一些其他的UI问题
https://stackoverflow.com/questions/10411858
复制相似问题