关于 addChildViewController: 添加的是 UITableViewController,不能交互的问题
TestTableViewController *obj = [[TestTableViewController alloc] initWithNibName:NSStringFromClass([TestTableViewController class]) bundle:nil]; [self addChildViewController:obj];
obj.tableView.frame = self.view.frame;
[self.view addSubview:obj.tableView];
[obj didMoveToParentViewController:self];
// TestViewController *obj = [[TestViewController alloc] initWithNibName:NSStringFromClass([TestViewController class]) bundle:nil];
// [self addChildViewController:obj];
// obj.view.frame = self.view.frame;
// [self.view addSubview:obj.view];
// [obj didMoveToParentViewController:self];
上面代码唯一的区别是:一个是 UITableViewController,一个是UIViewController。
我 addChildViewController:
添加一个 UIViewController 是能正常交互的,比如我在里面放了个 tableView, 是可以正常滚动的;但是如果我 addChildViewController:
的是个 UITableViewController,却不能交互,有大佬遇到过这种情况吗?
回答:
楼上分析正确。但是 xib 设置有效属性,cell 未满屏也可滑动。亲测有效。
回答:
1.采用storyboard的方式:
TestTableViewController *obj = [[UIStoryboard storyboardWithName:@"Storyboard" bundle:nil] instantiateViewControllerWithIdentifier:@"TestTableViewController"];
放了几个静态cell,测试滑动正常,通过
2.采用xib方式创建TestTableViewController
TestTableViewController *obj = [[TestTableViewController alloc] init];//...
// viewDidLoad
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"123"];
self.tableView.delegate = self;
self.tableView.dataSource = self;
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"123" forIndexPath:indexPath];
// Configure the cell...
return cell;
}
确实不能滑动,原因是cell排不满,高度小于UITableView的屏幕高度
修改数据,改成 30个cell,正常滑动
所以楼主 遇到的问题其实是 用xib创建了但未摆满一屏
回答:
666666666
以上是 关于 addChildViewController: 添加的是 UITableViewController,不能交互的问题 的全部内容, 来源链接: utcz.com/p/186914.html