gpt4 book ai didi

IOS - 选择复合数组并将其传递给另一个 ViewController

转载 作者:行者123 更新时间:2023-11-28 21:57:40 25 4
gpt4 key购买 nike

我有一个对象数组。我想选择其中的一个子组并将其传递给 detailView。

我在使用 didSelectRowAtIndexPath 或 prepareForSegue 之间犹豫不决

这是我的 didSelect 的主要 VC 代码:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSMutableArray *tempArray = [NSMutableArray new];
tempArray = [mainArray objectAtIndex: indexPath.row];
NSString *numberString = [tempArray valueForKey:@"number"];


NSManagedObjectContext *context = [self managedObjectContext];
NSEntityDescription *entityDescription = [NSEntityDescription
entityForName:@"MyEntity" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"number =[c] %@",numberString];
[request setPredicate:predicate];
[request setIncludesSubentities:NO];
NSError *error = nil;
NSArray *array = [context executeFetchRequest:request error:&error];

selectedObjects = [array mutableCopy];
NSLog(@"selectedObjects: %@", selectedObjects); << -- this looks ok

detailsViewController = [[DetailsViewController alloc] init];
detailsViewController.selectedObjects = selectedObjects;

[self performSegueWithIdentifier:@"mainToDetails" sender:self.view];
}

在此示例中,selectedObjects 显示正常。当我到达 detailView 时,selectedObjects 为空。

NSIndexPath *path = [mainTable indexPathForSelectedRow];

NSMutableArray *tempArray = [NSMutableArray new];
tempArray = [main objectAtIndex: path]; << this isn't right.

感谢任何帮助。

最佳答案

它是 nil,因为您使用 alloc init 创建了一个从未出现在屏幕上的 Controller 实例。由于您使用的是 segue,因此 segue 会创建新实例,您应该在 prepareForSegue 中传递数据,您可以在其中使用 segue.destinationViewController 获取对此 Controller 的引用。

关于IOS - 选择复合数组并将其传递给另一个 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25986041/

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