从一个充满字符串的数组中设置表视图中按钮的标题标签

我在视图控制器中创建了这个表视图。 表视图将有一组按钮。 现在我有一个包含这些按钮标签的数组,但按钮标签只设置为数组中的第一个对象。

如何将其标签设置为数组中各自的对象,即第二个按钮将第二个对象作为标签,依此类推? 这就是我一直在做的事情。

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSString *cellIdentifier = @"celllIdentifier"; UIButton *btnProblem; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; btnProblem = [UIButton buttonWithType:UIButtonTypeCustom]; btnProblem = [[UIButton alloc] initWithFrame:CGRectMake(100,0,635,75)]; [btnProblem setBackgroundImage:[UIImage imageNamed:@"sc123_button_hover.png"] forState:UIControlStateSelected]; [btnProblem setBackgroundImage:[UIImage imageNamed:@"sc123_button.png"] forState:UIControlStateNormal]; UIFont *font = [UIFont fontWithName:@"RobotoSlab-Regular" size:25]; //[btnProblem setTitle:[btnLabels objectAtIndex:indexPath.row] forState:UIControlStateNormal]; [btnProblem.titleLabel setFont:font]; btnProblem.tag = 1000; [cell addSubview:btnProblem]; cell.backgroundColor = [UIColor clearColor]; } btnProblem = (UIButton*)[cell viewWithTag:1000]; return cell; } - (void)viewDidLoad { [super viewDidLoad]; [_btnNext addTarget:self action:@selector(btnNextTapped:) forControlEvents:UIControlEventTouchUpInside]; [_btnBack addTarget:self action:@selector(btnBackTapped:) forControlEvents:UIControlEventTouchUpInside]; btnLabels = [[NSArray alloc] initWithObjects:@"Lime-scale on fixtures",@"Spots on dishes",@"Clothing becomes gray after washing",@"Clothing feels stiff or wrinkles easily in wash",@"Rings form in toilet or where water stands",@"Misting system clogs", @"Faucets don't have even spray",@"Valves have white deposits at connections", nil]; self.tableView.delegate = self; self.tableView.dataSource = self; [self.tableView setBackgroundView:nil]; [self.tableView setBackgroundColor:[UIColor clearColor]]; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return 1; } -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return [btnLabels count]; } 

尝试这个 –

 [btnProblem setTitle:[btnLabels[indexPath.section] forState:UIControlStateNormal]; 

而不是这个 –

 [btnProblem setTitle:[btnLabels[indexPath.row] forState:UIControlStateNormal]; 

由于每个部分只有一行,访问数组的对象使用部分编号。 ps还取消注释上面的代码行。