2012-10-09 39 views
0

这是我现在的代码,这是错误的。由于视图的改变,我没有得到viewDidLoad。如何将代表和数据源设置为UITableViewController的视图?

UITableView *tableView = [[UITableView alloc] init]; 
tableViewController = [[TableViewController alloc] init]; 
tableViewController.view = tableView; 
tableViewController.title = @"test"; 

tableView.delegate = self; 
tableView.dataSource = self; 

我真正需要的是改变tableViewController的观点的delegatedatasourceself
问题是我出于某种原因不能这样做。

类似的东西将是巨大的:

tableViewController = [[TableViewController alloc] init]; 
tableViewController.title = @"test"; 

tableViewController.view.delegate = self; 
tableViewController.view.dataSource = self; 

但由于某些原因,我不能设置tableViewController的看法财产的委托,也没有数据源。

任何想法为什么?

感谢

+0

TableViewController是一个UITableViewController吗? view是UIViewController的一个属性,它返回一个UIView,它没有委托或数据源。但是,UITableViewController具有tableView的tableView属性。这些对象是相同的东西,但调用视图会将其转换为UIView。只需使用.tableView。此外,在这种情况下,您不想创建和分配UITableView。如果TableViewController只是像Brandon的答案那样的UIViewController子类,那么您将需要创建自己的tableview。 – Matt

回答

1

确保类,你正在尝试使用的数据源列出适当的协议和委托的方法来实现。

@interface MyNewViewController : UIViewController <UITableViewDataSource, UITableViewDelegate> 

@end 

然后你应该可以做类似的事情。

tableViewController.tableView.delegate = self; 
tableViewController.tableView.datasource = self; 
相关问题