在UITableView Cell中加载数组

时间:2014-08-08 23:21:18

标签: ios arrays uitableview

我希望在查看UIScrollView之后使用detailController左右翻页。

首先,main.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    OZDetailViewController *detailViewController = [[OZDetailViewController alloc] initWithNibName:@"OZDetailViewController" bundle:nil];
    detailViewController.arrDetailNews = [_arrNews objectAtIndex:indexPath.row];
    [self.navigationController pushViewController:detailViewController animated:YES];

    OZDetailViewController *arrNewsAll = [[OZDetailViewController alloc] initWithNibName:@"OZDetailViewController" bundle:nil];
    arrNewsAll.allNewsArray = _arrNews;
    [self.navigationController pushViewController:arrNewsAll animated:YES];
}

当我选择tableviewcell中的内容时,arrDetailNews可以加载方法viewDidLoad()cellForRowAtIndexPath()。但arrNewsAll无法在方法cellForRowAtIndexPath()中加载。

这是我的detailViewController.h

@property (nonatomic, copy) NSArray *allNewsArray;

detailViewCOntroller.m

@synthesize allNewsArray;

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

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.tableView.separatorColor = [UIColor clearColor];
    NSLog(@"dataArray: %@", allNewsArray);
}

- (int)numberINSectionsInTableView: (UITableView *)tableView
{
    return 1;
}

- (int)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 4;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"dataArrayCell: %@", allNewsArray);

    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"New Cell"];
    }

    if(indexPath.row != self.arrDetailNews.count-1){
        UIImageView *line = [[UIImageView alloc] initWithFrame:CGRectMake(0, 44, 320, 2)];
        line.backgroundColor = [UIColor whiteColor];
        [cell addSubview:line];
    }

    tableView.allowsSelection = NO;
    cell.textLabel.text = [NSString stringWithFormat:@"%u", indexPath.row];

    if (indexPath.row==0) {
        cell.textLabel.text = @"1st";
    }
    if (indexPath.row==1) {
        cell.textLabel.text = @"2nd";
    }
    if (indexPath.row==2) {
        cell.textLabel.text = @"3rd";
    }
    return cell;
}

如果可以在allNewsArray中加载cellForRowAtIndexPath(),我可以继续使用UIScrollView进行分页。请注意,numberOfRowsInSection我设置为4,因为我需要4行(自定义视图)。

1 个答案:

答案 0 :(得分:1)

假设您设置了代表&从xib / storyboard正确地输出dataSource,你仍然需要指定每个部分的行数(或部分的数量)。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return allNewsArray.count;
}

或者,部门数量的方法是:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;