0

我试图让这些信息从一个被调用的类发送ViewController到另一个类。在viewController我有一个NSDictionaryselectedVenues. 然后在另一个班级我也有一个NSDictionaryselectedVenues. 我想将信息从ViewController selectedVenues另一个类的 selectedVenue 发送,但它只返回 null;

ViewController *main = nil;
self.selectedVenue = main.selectedVenues;
NSDictionary *selectedLocation = self.selectedVenue[@"location"];
NSString *selectedLat = selectedLocation[@"lat"];
NSString *selectedLng = selectedLocation[@"lng"];

我现在已经试过了。它仍然无法正常工作

ViewController *main = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];

       //self.selectedVenue = main.selectedVenues;
       NSDictionary *selectedLocation =  [main getSelectedVenue:@"location"];
       NSString *selectedLat = selectedLocation[@"lat"];
       NSString *selectedLng = selectedLocation[@"lng"];

这是我的 viewController 中的方法。

-(NSDictionary *)getSelectedVenue:(NSString *)key;
{

    NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow];
    self.selectedVenue= [self.venues objectAtIndex:selectedIndexPath.row];
     NSDictionary *selectedLocation = self.selectedVenue[key];

    return selectedLocation;

}
4

3 回答 3

4
ViewController *main = nil;
self.selectedVenue = main.selectedVenues;

当您引用一个nil值时,您期望会发生什么?

但它只返回null;

是的,这是有效的。

于 2013-03-04T12:20:06.383 回答
1

您需要viewController在代码中初始化以获取其字典值

ViewController *main = nil;

你应该用你正在使用的 nib 或 viewController 来初始化它

ViewController *main = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
于 2013-03-04T12:21:35.373 回答
0

在推送 viewController 之前传递值。

在你的 ViewController.m

NextViewController *main = [[NextViewController alloc] initWithNibName:@"NextViewController" bundle:nil];
main.selectedVenue = self.selectedVenue;

[self.navigationController pushViewController:main animated:YES];
于 2013-03-04T12:29:47.793 回答