Ios 自定义UIView中的UItable
我创建了UIView CustomView的一个子类。还为此创建了一个xib。 在xib中添加了一个tableView,并将其委托和数据源添加到文件的所有者。 然后添加了如下视图Ios 自定义UIView中的UItable,ios,objective-c,uitableview,uiview,Ios,Objective C,Uitableview,Uiview,我创建了UIView CustomView的一个子类。还为此创建了一个xib。 在xib中添加了一个tableView,并将其委托和数据源添加到文件的所有者。 然后添加了如下视图 nibViews = [[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:self
nibViews = [[NSBundle mainBundle] loadNibNamed:@"CustomView"
owner:self
options:nil];
self.searchView = [ nibViews objectAtIndex: 0];
[self.view addSubview:self.searchView];
它崩溃了。显示tableView:numberOfRowsInSection::发送到实例的选择器无法识别。
但是我已经实现了所有的数据源方法
然后,我删除了数据源并将其从xib委托给文件的所有者。
增加如下内容:
-(void)awakeFromNib
{
self.table_userlist.delegate = self;
self.table_userlist.dataSource = self;
[self.table_userlist reloadData];
}
现在它开始工作了
请帮助我理解这个场景。当我设置datasource、从xib委派和从awakeFromNib
编程委派时,会有什么不同。
谢谢。我认为您已经在自定义视图中实现了数据源,并且正在视图控制器的视图中实例化 实例化时,通过说出
owner:self
将视图的所有者身份转换为视图控制器。因此,数据源必须位于视图控制器中
在从nib唤醒时,代码仍在视图中,您可以指定委托视图
以及文件所有者的委托和数据源
必须将这些设置为自定义视图,而不是文件的所有者。
,并在该视图中实现委托和数据源方法。在哪个方法中有第一块代码?谢谢。知道了。我在viewController“nibViews=[[NSBundle mainBundle]loadNibNamed:@“CreateUserSearchView”所有者:自我选项:nil];”中使用了此选项。因此,viewController成为文件所有者。如何使CustomView成为所有者?