0

私はVCにテキストビューを持っています。nsuserdefaults を使用してこのテキストビューを保存し、後で取得します。VC1 では、保存されたテキストビューを取得し、UITableView に表示します。しかし、アプリを起動すると、インデックス 0 に「null」テキストが自動的に表示されます。

VC:

-(void)save:(id)sender{

   NSUserDefaults *userData1 = [NSUserDefaults standardUserDefaults];
    [userData1 setObject:textView.text forKey:@"savetext"];
    [userData1 synchronize];
}

VC1:

-(void) viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];

     // textArray=[[NSMutableArray alloc]init];

    txt=[[UITextView alloc]initWithFrame:CGRectMake(0, 0, 320, 400)];

    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    // getting an NSString
     NSString *savedValue = [prefs stringForKey:@"savetext"];

    NSLog(@"saved is %@",savedValue);

    txt.text = [NSString stringWithFormat:@"%@", savedValue];

    NSLog(@"text.txt is %@", txt.text);

    MyAppDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

  if(![MyAppDelegate.textArray containsObject:txt.text]){
        [MyAppDelegate.textArray addObject:txt.text];
    }

   NSUserDefaults *userData1 = [NSUserDefaults standardUserDefaults];
    [userData1 setObject:MyAppDelegate.textArray forKey:@"save"];
    [userData1 synchronize];

}

UITableView は、配列を使用してテキスト値を表示します。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    NSMutableArray* myMutableArrayAgain = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"save"]];

     NSLog(@"array is %@",myMutableArrayAgain);

     return [myMutableArrayAgain count];

  }


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    NSMutableArray* myMutableArrayAgain = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"save"]];

    NSLog(@"mycell is %@",myMutableArrayAgain);

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    NSLog(@"cell is %@",cell);

    if (cell == nil) {

        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];

        NSLog(@"cell inside is %@",cell);

    }

 // Configure the cell...
    cell.textLabel.text = [myMutableArrayAgain objectAtIndex:indexPath.row];
    [cell.textLabel setFont:[UIFont fontWithName:@"Arial-BoldMT" size:14]];
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

    return cell;

}

ここに画像の説明を入力

4

1 に答える 1