我希望在tableView中添加新数据,请你帮我解决一下。目前mt表中填充了greekLetters和imageNames。在按钮上单击我希望在表中添加新数据:greekLetters2
@interface ViewController2 ()
@end
@implementation ViewController2
- (void)viewDidLoad {
[super viewDidLoad];
self.greekLetters = @[@"BigBen",@"Colosseum",@"EiffelTower",@"GreatWallOfChina",@"StatueofLiberty",@"StBasils",@"Stonehenge",@"TajMahal",@"TowerOfPisa"];
self.imageNames = @[@"BigBen.jpg",@"Colosseum.jpg",@"EiffelTower.jpg",@"GreatWallOfChina.jpeg",@"StatueofLiberty.jpg",@"StBasils.jpg",@"Stonehenge.jpg",@"TajMahal.jpg",@"TowerOfPisa.jpg"];
self.greekLetters2 = @[@"BigBen2",@"Colosseum2",@"EiffelTower2",@"GreatWallOfChina2",@"StatueofLiberty2",@"StBasils2",@"Stonehenge2",@"TajMahal2",@"TowerOfPisa2"];
self.imageNames2 = @[@"BigBen2.jpg",@"Colosseum2.jpg",@"EiffelTower2.jpg",@"GreatWallOfChina2.jpeg",@"StatueofLiberty.jpg",@"StBasils2.jpg",@"Stonehenge2.jpg",@"TajMahal2.jpg",@"TowerOfPisa2.jpg"];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [self.greekLetters count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *SimpleIdentifier = @"SimpleIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:SimpleIdentifier];
}
UIImage *image = [UIImage imageNamed:self.imageNames[indexPath.row]];
cell.imageView.image = image;
cell.textLabel.text = self.greekLetters[indexPath.row];
cell.textLabel.font = [UIFont boldSystemFontOfSize:30];
if (indexPath.row < 3)
{
cell.detailTextLabel.text = @"A";
}
else
{
cell.detailTextLabel.text = @"B";
}
return cell;
}
-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == 0)
{
return nil;
}
else
{
return indexPath;
}
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *rowValue = self.greekLetters[indexPath.row];
NSString *message = [[NSString alloc] initWithFormat:@"You selsected %@!",rowValue];
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Row Selected" message:message delegate:nil cancelButtonTitle:@"Yes" otherButtonTitles:nil, nil];
[alert show];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 70;
}
- (IBAction)SwitchTable:(id)sender
{
//repapulate
}
@end
答案 0 :(得分:1)
最简单的方法是在按下按钮时切换两个数组。 greekLetters必须成为greekLetters2和反之亦然。然后,只需重新加载tableview数据。
-(IBAction)SwitchTable:(id)sender {
NSArray *temp = [NSArray arrayFromArray:greekLetters];
greekLetters = [NSArray arrayFromArray:greekLetters2];
greekLetters2 = [NSArray arrayFromArray:temp];
[tableview reloadData];
}
答案 1 :(得分:0)
只有一个nsmutablearray会驱动你的tableview。如果你的greekLetters数组是nsmutablearray,你会更新它,然后重新加载你的tableview:
[self.greekLetters addObjectsFromArray:self.greekLetters2];
[self.tableView reloadData];
答案 2 :(得分:0)
暂停这两个教程,它们将指导您实现您的目标: - https://www.youtube.com/watch?v=gT8ncroYdDw - https://www.youtube.com/watch?v=NHzm-D9VsQA