在我的iPhone应用程序我有了一个UITableView和另一个UIView的,在它的XIB文件中,厦门国际银行的观点既包含的UITableView和其他UIView的一个UIViewController。两个视图都作为IBOutlets链接到xib文件中的相应视图。 当我想以编程方式为我在UIViewController中创建这样一个方法的UITableView设置数据源:的UITableView:编程设置数据源
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil tableDataSource:(id)dataSource{
if ((self = [self initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
// Custom initialization
self.inventoryTableView.dataSource = dataSource;
//[self.inventoryTableView reloadData];
}
return self;}
,然后我实现另一个类矿井下面的方法,我们称之为B:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
最后我alloc + init B并将实例传递给创建UIViewController的方法initWithNibName:bundle:tableDataSource:
。所有视图都显示在模拟器中,但数据源方法似乎不被调用。 我做了一些与另一个控制器类似的工作,但它是一个UITableViewController,而TableView是控制器的视图。是否有可能是一个子视图,我必须设置数据源的另一种方法不同于initWithNib?
UPDATE: 通过将数据源分配的viewDidLoad:
方法我能解决这个问题。在我看来,即使调用[self initWithNibName:nibNameOrNil bundle:nibBundleOrNil]
的主视图的子视图后不能正常inited
你可以发布您的viewDidLoad方法?我试图做同样的事情,你却在viewDidLoad方法你设置self.table.dataSource什么?在你的代码中,你可以将它设置为init方法中可用的dataSource – RyanG 2011-05-27 18:24:50