0

配列を作成しました。そのデータはテーブルビューに表示されます。今、その配列に辞書データを追加して、同じテーブルビューに表示したいと考えています。ディクショナリの値を配列に追加するボタンを作成しましたが、テーブルビューにデータが表示されません。

これが私の「ViewController.m」です

#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
mArray = [[NSMutableArray alloc]initWithObjects:@"one",@"two",@"three",@"four",@"five",@"six",@"seven",@"eight",@"nine",@"ten", nil];
mDictionary = [[NSMutableDictionary alloc]init];
[mDictionary setValue:@"gfhhgfhf" forKey:@"firstname"];
[mDictionary setValue:@"hhgghf" forKey:@"lastname"];
CGRect frame = self.view.frame;
UITableView *tableView = [[UITableView alloc]initWithFrame:frame style:UITableViewStylePlain];
tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
tableView.backgroundColor = [UIColor cyanColor];
tableView.separatorColor = [UIColor blackColor];
tableView.delegate = self;
tableView.dataSource = self;
UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
button.frame = CGRectMake(200, 400, 100, 30);
[button setTitle:@"ADD" forState:UIControlStateNormal];
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[button addTarget:self action:@selector(addValueInArray) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:tableView];
[self.view addSubview:button];
}
-(void)addValueInArray{
[mArray addObject:(mDictionary)];
[mArray reloadData];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return mArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:  (NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (!cell) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault   reuseIdentifier:@"cell"];
}
cell.textLabel.text = [mArray objectAtIndex:indexPath.row];
    return cell;
}
- (void)dealloc
{
[mArray release];
[super dealloc];
}
@end
4

2 に答える 2

1

これを使用して、関数を置き換えます。それが動作します

   -(void)addValueInArray{
   [mArray addObject:[[mDictionary objectForKey:@"firstname"]stringByAppendingString:[mDictionary objectForKey:@"lastname"]];
   [tableView reloadData];
    }
于 2013-01-31T06:24:22.723 に答える
1

これを行うことであなたを埋めることができますmArray ->

-(void)addValueInArray{
   [[mArray addObject:[[mDictionary objectForKey:@"firstname"]stringByAppendingString:[mDictionary objectForKey:@"lastname"]]];
   [tableView reloadData];
    }

次に、テーブルビューのデリゲートメソッドで、これを行います->

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:  (NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (!cell) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault   reuseIdentifier:@"cell"];
}
cell.textLabel.text = [mArray objectAtIndex:indexPath.row];
    return cell;
}

それが役に立てば幸い...

于 2013-01-31T06:32:30.977 に答える