再現手順:
1. 「TestApp」という名前のタブ バー アプリケーションを作成します
。 2. 「Table」という名前の XIB ユーザー インターフェイスを持つ UIViewController サブクラスの新しいファイルを追加します
。 3. MainWindows.xib を開き、2 番目のタブ バー項目をクリックします。インスペクターは、NIB 名を「SecondView」から「Table」に変更します。保存して閉じます。
4. Table.xib を開き、TableView をビューの上にドラッグします。ここで、TableView の dataSource アウトレットとデリゲート アウトレットを Table.xib ファイルの所有者にリンクします。
5. 次のコードを Table.m に追加します。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
NSLog(@"Returning num sections");
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSLog(@"Returning num rows");
return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"Trying to return cell");
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
cell.text = @"Hello";
NSLog(@"Returning cell");
return cell;
}
6. アプリケーションを実行し、[2 番目のタブ バー] 項目を選択します。
View ベースのアプリケーションから開始する場合は、それに TableView を追加し、アウトレットをファイルの所有者にリンクし、そのコードを追加すると、すべて正常に動作します。私は何を間違っていますか?アプリケーションがクラッシュするのはなぜですか?