关于 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

回到顶部