我在IB中创建了一个名为MyTableViewController的UITableViewController。 xcode生成MyTableViewController.m,MyTableViewController.h和MyTableViewController.xib,其中包含一个tableview。
然后我通过以下代码将生成的表视图添加到另一个视图控制器
MyTableViewController *myTableViewController = [[MyTableViewController alloc] init];
UITableView *myTableView = (UITableView *)myTableViewController.view;
myTableView.frame = CGRectMake(190, 190, 500, 160);
myTableView.delegate = myTableViewController;
myTableView.dataSource = myTableViewController;
结果,MyTableViewController.m中的委托方法不会被调用, 例如" numberOfSectionsInTableView"," numberOfRowsInSection"," cellForRowAtIndexPath"。
有任何建议吗?感谢。
答案 0 :(得分:0)
您没有加载XIB文件,所以我怀疑myTableView
是零。而不是:
MyTableViewController *myTableViewController = [[MyTableViewController alloc] init];
试试这个:
MyTableViewController *myTableViewController = [[MyTableViewController alloc] initWithNibName:@"MyTableViewController" bundle:nil];
此外,您需要告诉您的视图控制器它有一个childViewController,并告诉您的tableViewController它有一个父VC。在addSubview
:
[self addChildViewController:myTableViewController];
[self.view addSubView:myTableView];
[myTableViewController didMoveToParentViewController:self];