0

Possible Duplicate:
UITableViewController not loading data

I have created a UITableViewController in the following way

#import "KLActionsViewController.h"

@interface KLActionsViewController ()

@end

@implementation KLActionsViewController
@synthesize actionList,delegate;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)loadView
{

}

- (void)viewDidLoad {
    [super viewDidLoad];
    NSMutableArray* list = [[NSMutableArray alloc] init];
    self.tableView = [[UITableView alloc] init];
    self.tableView.delegate = self;
    self.tableView.dataSource = self;
    self.actionList = list;
    self.clearsSelectionOnViewWillAppear = NO;
    self.contentSizeForViewInPopover = CGSizeMake(320.0, 400.0);
    [self.actionList addObject:@"Obj1"];
    [self.actionList addObject:@"Obj2"];
    [self.actionList addObject:@"Obj3"];
    [self.actionList addObject:@"Obj4"];

}

- (int)numberOfSectionsInTableView:(UITableView *)tableView
{
    NSLog(@"in number of section");
    return 1;
}

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    NSString* lab = [self.actionList objectAtIndex:indexPath.row];
//    NSLog(lab);
    NSLog(@"here in there");
    cell.textLabel.text = lab;
    return cell;
}

- (NSInteger)numberOfRowsInSection:(NSInteger)section
{
    NSLog(@"Total entries : %i ",[self.actionList count]);
    return [self.actionList count];
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (self.delegate != nil) {
        [self.delegate actionSelected:indexPath.row];
    }
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    self.actionList = nil;
    self.delegate = nil ;
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

But when I try to create it's instance and show it in a UIPopoverController all I can see is an empty table and no data in it. Also, numberOfRowsInSection and cellForRowAtIndexPath never get called. Any help ?

4

1 に答える 1

0

内部に新しいテーブル ビューを作成していますがviewDidLoad:、このコントローラーのビューのサブビューにはしていません。空のテーブルが表示されていると言うので、.xib ファイルから 1 つのテーブルを読み込んでいると思われますがdataSource、この新しいテーブルのみを設定しています。

それが構造化されている場合は、.xib でテーブル ビューからself.tableViewプロパティへの接続を使用し、新しいオブジェクトを作成せずに、既存のオブジェクトを構成するだけです。

于 2012-08-19T15:17:12.417 に答える