在我的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