我面对UITableView
的奇怪行为。我有一个UIView
的视图控制器,我们称之为 A 。
内部UIView
A 我正在调用来自UIViewController
的另一个视图,名为view B 。
HomeViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
UIView *B = [[BViewController alloc]init].view;
[self.A addSubview:B];
}
在 B 内,我有UITableView
C 。
BViewController.m
- (void) viewDidLoad
{
C.delegate = self;
C.dataSource = self;
[self.view addSubview:C];
}
此UITableView
正确加载,但当我点击屏幕时,所有表格的内容都消失了。只剩下一张空桌子。
答案 0 :(得分:0)
在您的视图中,控制器B创建了类型A的属性,并将其命名为委托,并使用A的实例对其进行设置,并将该委托属性设置为您的表视图' datasource和delegate而不是self。因为在b的viewdidload中你将委托和数据源设置为self,这意味着B的实例,并且你的表视图正在viewcontrollet A上显示。所以A'的瞬间将是tableview的委托。因此,在vc A或我上面提到的行中将tableview的委托和数据源设置为self。或者你应该将vc添加为childviewcontroller。
答案 1 :(得分:0)
根据View Containers的官方文件,我的问题得到了解决。