将 UITableVIew 添加到视图
Adding a UITableVIew on to a View
当用户点击按钮时,我滑入 UIView
(此 UIVIew
是通过 XIB
文件创建的)。
我已将 TableView
添加到此 XIB
文件并连接了 datasource
和 delegate
。见下图:
在视图中 class 我添加了以下方法。
-(id)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
[self addSubview:self. tablev];
}
在头文件中我有以下代码。
@interface FlipView : UIView <UITableViewDataSource,UITableViewDelegate>
代码为UIViewController
class。 class 中有一个按钮,当用户单击它时,UIView
将显示。单击按钮时将执行的代码。
fv = [[FlipView alloc] initWithFrame:cell.bounds];
[self.view addSubview:fv];
[self.view addSubview: fv];
view
与 tableview 完美弹出。但是,tableview 上的内容未填充。当我调试代码时,我发现没有调用委托方法。我该如何解决这个问题?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MyCell
*cell = [tableView dequeueReusableCellWithIdentifier:@"c" forIndexPath:indexPath];
if (cell == nil)
{
cell = [[MyCell
alloc] initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:@"c"];
}
cell.la.text=@"hiiiii";
数据源和委托连接到文件的所有者,不是 FlipView。您可以从 xib 中删除委托和数据源,并以编程方式添加它:
self.tableView.delegate = self;
self.tableView.dataSource = self;
我建议在 initWithFrame 方法中这样做。
当用户点击按钮时,我滑入 UIView
(此 UIVIew
是通过 XIB
文件创建的)。
我已将 TableView
添加到此 XIB
文件并连接了 datasource
和 delegate
。见下图:
在视图中 class 我添加了以下方法。
-(id)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
[self addSubview:self. tablev];
}
在头文件中我有以下代码。
@interface FlipView : UIView <UITableViewDataSource,UITableViewDelegate>
代码为UIViewController
class。 class 中有一个按钮,当用户单击它时,UIView
将显示。单击按钮时将执行的代码。
fv = [[FlipView alloc] initWithFrame:cell.bounds];
[self.view addSubview:fv];
[self.view addSubview: fv];
view
与 tableview 完美弹出。但是,tableview 上的内容未填充。当我调试代码时,我发现没有调用委托方法。我该如何解决这个问题?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MyCell
*cell = [tableView dequeueReusableCellWithIdentifier:@"c" forIndexPath:indexPath];
if (cell == nil)
{
cell = [[MyCell
alloc] initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:@"c"];
}
cell.la.text=@"hiiiii";
数据源和委托连接到文件的所有者,不是 FlipView。您可以从 xib 中删除委托和数据源,并以编程方式添加它:
self.tableView.delegate = self;
self.tableView.dataSource = self;
我建议在 initWithFrame 方法中这样做。