0

私は UITabBarController を使用して簡単なデータ追加アプリを作成しています。これを解決するには?

これは、dataarray を secondviewcontroller に渡すための FirstViewController のコーディングです。

 SecondViewController *svc = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
        [self presentModalViewController:svc animated:YES];

    finalArray = [[NSMutableArray alloc]init];

    [finalArray addObject:DataDic];

    svc.dataArray  = [[NSMutableArray alloc]initWithArray:finalArray];
}

そして Secondcontroll.m ファイルのコーディング。

 #import "SecondViewController.h"
    #import "SaveDataCell.h"

 @implementation SecondViewController
@synthesize Dict1,dataArray,btninfo,btnBack;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.title = NSLocalizedString(@"Second", @"Second");
        self.tabBarItem.image = [UIImage imageNamed:@"second"];
    }
    return self;
}



- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];

    Dict1 = [[NSMutableDictionary alloc]init];



    // Do any additional setup after loading the view, typically from a nib.
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
//    dataArray = [[NSMutableArray alloc]init];

    NSLog(@"%@",dataArray);
}

- (void)viewDidAppear:(BOOL)animated
{


 [super viewDidAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
}

- (void)viewDidDisappear:(BOOL)animated
{
    [super viewDidDisappear:animated];
}
- (NSInteger)numbe

rOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}
- (NSInteger)tableVi

ew:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return[dataArray count];
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 150;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"CatIdentifier";

    SaveDataCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = ( SaveDataCell*)[[[NSBundle mainBundle] loadNibNamed:@"SaveDataCell" owner:self options:nil] objectAtIndex:0];
    }


    cell.lblName.text = [[dataArray objectAtIndex:indexPath.row]valueForKey:@"Name"];
    cell.lblEmail.text = [[dataArray objectAtIndex:indexPath.row]valueForKey:@"Email"];
    cell.lblNo.text = [[dataArray objectAtIndex:indexPath.row]valueForKey:@"No"];
    cell.lblCity.text = [[dataArray objectAtIndex:indexPath.row]valueForKey:@"City"];
    cell.saveimg.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@",[[dataArray valueForKey:@"Image"]objectAtIndex:indexPath.row]]];
    return cell;
}
-(IBAction)ClicktoBack:(id)sender
{
    [self dismissModalViewControllerAnimated:YES];
}
-(IBAction)ClicktoInfo:(id)sender
{

}
4

3 に答える 3

1

いくつかの方法で、ViewController間でデータを渡すことができます。

好き

// lowerVersionsの場合:

 SecondViewController *tmpNamesListVC = [self.tabBarController.viewControllers objectAtIndex:1];
     [tmpNamesListVC yourArray]= self.arraytoPass;

//上位バージョンの場合

SecondViewController *tmpNamesListVC = [self.tabBarController.viewControllers objectAtIndex:2];
 [tmpNamesListVC yourArray]= self.arraytoPass;

また、コーディングの順序を変更する必要があります

SecondViewController *svc = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];

finalArray = [[NSMutableArray alloc]init];

[finalArray addObject:DataDic];

svc.dataArray  = [[NSMutableArray alloc]initWithArray:finalArray];

[self presentModalViewController:svc animated:YES];
于 2012-12-21T14:26:59.640 に答える
0

これを試して:

SecondViewController *svc = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];

finalArray = [[NSMutableArray alloc]init];

[finalArray addObject:DataDic];

svc.dataArray  = [[NSMutableArray alloc]initWithArray:finalArray];

[self presentModalViewController:svc animated:YES];
于 2012-12-21T14:21:43.950 に答える