在滚动视图中添加表视图

时间:2012-04-02 16:50:23

标签: objective-c cocoa-touch

我对iPhone开发相对较新,我试图将uitableview添加到滚动视图但是它显示Sigabart错误然后我以编程方式添加并添加了uitableviewdelegate和uitableview数据源并将委托作为self并添加'noOfRowsInSection'方法delgate方法并没有被称为任何人帮助我。

@interface Class : UIViewController<UITableViewDelegate,UITableViewDataSource> {
     UITableView *table;
     UIScrollView *scrView;
     NSArray *array;
}
@property (nonatomic, retain) IBOutlet UIScrollView *scrView;
@end

here is my implementation

- (void)viewDidload
{
    array = [[NSArray alloc]initWithObjects:@"harsha",@"theja",@"pandu", nil];
    [super viewDidUnload];
    table = [[UITableView alloc]initWithFrame:CGRectMake(0, 260, 360, 220)];
    [self.view addSubview:table];
    table.delegate = self ;


}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [array count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    cell.textLabel.text = [array objectAtIndex:indexPath.row];
    return cell;

}

@end

我通过界面构建​​器添加滚动视图,但我正在进行表格视图,在屏幕上显示了tabl视图,但这些方法并没有被称为

2 个答案:

答案 0 :(得分:3)

1st:您正在使用viewDidUnload而不是viewDidLoad,

第二步:添加tableview.dataSource = self并实现数据源委托方法=)

您正在使用委托而不是数据源=)

答案 1 :(得分:1)

您将代码放在viewDidUnload方法中。将此代码移至viewDidLoad

- (void)viewDidUnload
{
    array = [[NSArray alloc]initWithObjects:@"harsha",@"theja",@"pandu", nil];
    [super viewDidUnload];
    table = [[UITableView alloc]initWithFrame:CGRectMake(0, 260, 360, 220)];
    [self.view addSubview:table];
    table.delegate = self ;
}

应该是这样:

- (void)viewDidLoad
{
    array = [[NSArray alloc]initWithObjects:@"harsha",@"theja",@"pandu", nil];
    [super viewDidUnload];
    table = [[UITableView alloc]initWithFrame:CGRectMake(0, 260, 360, 220)];
    [self.view addSubview:table];
    table.delegate = self;
    table.dataSource = self;
}