我正在创建一个基于导航的应用程序,它显示了一个用openGL渲染的图形,以及一个列出了在图形上显示的所有元素的公开按钮的表视图,以及一个设置公开按钮。
导航控制器也是一个表视图委托和数据源,表视图以编程方式添加到视图中,并将其“委托和数据源”设置为“self”。基于OpenGL的图形视图通过IB添加。
我遇到的问题是,我试图在didSelectRowAtIndexPath方法中推送一个视图控制器(设置或图形元素属性)。该方法注册并推送新视图,但表视图保留并遮挡被推送的视图的一部分,就好像它具有不同的导航控制器。
我似乎无法将tableview的导航控制器设置为与UINavigationControllers视图的其余部分相同。
有人知道我怎么解决这个问题吗?
我的导航控制器的initWithCoder方法,其中添加了表视图,显示如下:
elementList = [[UITableView alloc] initWithFrame:tableFrame style:UITableViewStyleGrouped];
elementList.dataSource = self;
elementList.delegate = self;
[self.view addSubview:elementList];
在源文件中,推送导航控制器的DidSelectRowAtIndexPath方法如下所示:
Settings* Controller = [[Settings alloc] init];
[self pushViewController:Controller animated:YES];
[Controller release];
发布于 2010-05-20 15:24:56
修复方法:只需在IB中添加UITableView,将IBOutlet添加到elementList,并通过IB将UIViewController设置为代理和数据源。
堆栈溢出对于将您的问题用文字表达出来非常有用,因此解决方案变得显而易见。
https://stackoverflow.com/questions/2875139
复制