2011-06-26 50 views
0

我试图显示UITableView作为UIView的子视图。显示作为子视图添加的UITableView中的数据

当我触发下面的操作时,显示视图,但不包含任何数据。

- (IBAction)youwin 
{  
    UITableView *HSView = [[UITableView alloc] initWithFrame:CGRectMake(200,200,500,600)] ; 
    [self.view addSubview:HSView]; 
} 

它看起来像HSView.m文件中的代码没有触发。

HSView.h导入到主控制器中。

我错过了什么?在你的代码

回答

1

几个问题是: -

  1. 作为存储器管理通话是不均衡您正在泄漏内存。您需要在将其添加为子视图后释放您创建的实例。
  2. 当创建UITableView的实例时,您需要设置delegatedataSource属性以使其正常工作。 dataSource对象是提供内容的对象,如果没有它,您将得到一个空表视图。
  3. 你提到HSView.h所以我在想HSView是一类。在这种情况下,UITableView *HSView不正确。如果你想实例化HSView,然后做HSView * hsView = ...。如果它是UITableView的一个子类,那么第2点也会适用。
+0

你好,感谢您比我的问题;-) 是的,你是对的,HSView是一个独立的类更好的答案,所以我把它改为: 'HSView * hsView = [[UITableView的页头] initWithFrame:CGRectMake(200,200,500,600)]; [self.view addSubview:hsView]; [hsView reloadData];' 但是我需要添加这个吗?如果我做的应用程序失败... '[hsView setDelegate:self]; [hsView setDataSource:self]; ' 我知道我必须释放它。 我必须道歉我的基本问题... –

+0

首先它应该是'HSView * hsView = [[HSView alloc] initWithFrame:CGRectMake(200,200,500,600)style:UITableViewStylePlain];'你会需要为'HSView'对象设置委托和数据源来显示数据。 –

+0

另一件事是'self'类应该采用'UITableViewDelegate'和'UITableViewDataSource'协议并实现填充数据所需的方法。 –

相关问题