gpt4 book ai didi

ios - 如何从 detailViewController 填充数组并返回到 iOS 中的 masterViewController?

转载 作者:行者123 更新时间:2023-11-29 12:33:57 25 4
gpt4 key购买 nike

我有一个 tableView,我从中导航到一个“viewController”,即 PassengerInfoViewController,我在其中有一个表单。我填写表单,制作一个 dictionary 并将其添加到 NSMutableArray

所以当我回到 tableView' 时,我想传递这个数组,然后用填充的数组重新加载 tableView。

所以这就是我正在做的:-

  //navigate to the form
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

PassengerInfoViewController *pivc = [self.storyboard instantiateViewControllerWithIdentifier:@"PassengerInfoViewController"];
[self.navigationController pushViewController:pivc animated:YES];

}

//After filling up the form

-(void)goBackToPassengerDetails:(UIButton*)sender{

NSString *title = self.titleTextField.text;
NSString *fname = self.firstNameTextField.text;
NSString *lname =self.lastNameTextField.text;
NSString *ageStr = self.ageTextField.text;

NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setValue:title forKey:@"title"];
[dict setValue:fname forKey:@"firstName"];
[dict setValue:lname forKey:@"lastName"];
[dict setValue:ageStr forKey:@"age"];
Passenger *passengerObj = [Passenger sharedInstance]; //Singleton

[passengerObj.passengerDetailArray addObject:dict];

PassengerDetailsViewController *pdc = [self.storyboard instantiateViewControllerWithIdentifier:@"PassengerDetailsViewController"];
[pdc getPassengerinfo:passengerObj.passengerDetailArray];
[self.navigationController popViewControllerAnimated:YES];

导航回来后,我重新加载 TableView 。但是 celForRow 方法不会填充新值。

 -(void)getPassengerinfo:(NSMutableArray*)arr{
passenger_infoArray =[[NSMutableArray alloc]init];
passenger_infoArray = arr;
NSLog(@"Passenger Info Array : %@", passenger_infoArray);//Shows array of dictionaries

[passengerInfoTableView reloadData];
}

我的 cellForRow 方法如下所示:

   - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//Not called when I am doing reload data
static NSString *CellIdentifier = @"Cell";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier ];

}
NSLog(@"Table view array : %@",passenger_infoArray);
if (passenger_infoArray.count>0) {

NSString *temp= [[passenger_infoArray objectAtIndex:indexPath.row]objectForKey:@"firstName"];
cell.textLabel.text = temp;
}else{

cell.textLabel.text = [NSString stringWithFormat:@"Passenger %ld", (long)indexPath.row+1];
cell.imageView.image = [UIImage imageNamed:@"user.png"];

}
return cell;

}

最佳答案

你可以使用

传递数据
  1. 代表
  2. 通知
  3. 属性
  4. 全局变量

使用委托(delegate)是一种很好的做法,最后两个不是首选。

关于ios - 如何从 detailViewController 填充数组并返回到 iOS 中的 masterViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26863740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com