将UITableViewController的视图添加到另一个UIViewController,不调用“委托”和“日期源”

时间:2014-10-20 08:57:06

标签: ios tableview

我在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"。

有任何建议吗?感谢。

1 个答案:

答案 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];
相关问题