0

この情報を取得して、別のクラスに呼び出されたクラスから送信しようとしていますViewControllerviewController私はとNSDictionary呼ばれるselectedVenues. 次に、他のクラスには、NSDictionaryという名前もありselectedVenuesます。からの情報を他のクラスの selectedVenue に送信したいのですが、ViewController selectedVenuesnull しか返されません。

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;

使用しているペン先または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 に答える