3

とても奇妙です...私はListEventsViewControllerと呼ばれるViewControllerを持っています

ヘッダーファイルで:

@interface ListEventsViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
@property (weak, nonatomic) IBOutlet UITableView *eventsTable;
@property (strong, nonatomic) NSArray *events;

@end

実装では、以下のほぼ必須の関数を呼び出しています。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return [events count];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell = nil;
    cell = [eventsTable dequeueReusableCellWithIdentifier:@"eventCell"];

    if(!cell){
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"eventCell"];
    }

    NSString *textLabelTitle = [[events objectAtIndex:indexPath.row] objectForKey:@"name"];
    NSString *textLabelDetail = [[events objectAtIndex:indexPath.row] objectForKey:@"date"];
    //cell.imageView.image = someimage;
    NSLog(@"Text Label Title: %@", textLabelTitle);
    NSLog(@"Text Label Detail: %@", textLabelDetail);
    cell.textLabel.text = textLabelTitle;
    cell.detailTextLabel.text = textLabelDetail;

    return cell;
}

問題は関数です - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ が呼び出されていないため、セルに値が入力されていません。また、セルの数も割り当てられていません。何が原因でしょうか?

h と IB の写真が私に配線されているようです。ここに画像の説明を入力

4

4 に答える 4

6

スクリーンショットで、テーブルを IBOutlet にリンクしたことを示しましたが、テーブル ビューのデリゲートまたはデータソースをコントローラーにリンクしていないため、テーブル デリゲート メソッドなどはcellForRowAtIndex呼び出されません。これらをリンクすると、問題が解決するはずです。

于 2012-09-06T00:48:37.287 に答える
1

コーディングで次の行を使用できます。

tableview.delegate = self;
tableview.datasource = self;
于 2013-10-03T12:58:08.383 に答える