iOS:在视图控制器之间传递数据

iOS:在视图控制器之间传递数据,ios,facebook-graph-api,uiviewcontroller,Ios,Facebook Graph Api,Uiviewcontroller,我使用的是Facebook API,当用户选择一个位置(签入)时,我想打开另一个视图并传递这个位置(FBGraphPlace),但在“SecondViewController”中,当执行方法“viewDidLoad”时,变量为null。 当用户选择地点时: if (secondViewController == nil) { SecondViewcontroller *secondViewcontroller = [[SecondViewcontroller alloc]

我使用的是Facebook API,当用户选择一个位置(签入)时,我想打开另一个视图并传递这个位置(FBGraphPlace),但在“SecondViewController”中,当执行方法“viewDidLoad”时,变量为null。 当用户选择地点时:

if (secondViewController == nil)
{
    SecondViewcontroller *secondViewcontroller =
    [[SecondViewcontroller alloc]
     initWithNibName:NSStringFromClass([SecondViewcontroller class])
     bundle:[NSBundle mainBundle]];

    self.secondViewcontroller = secondViewcontroller;
}

// How you reference your navigation controller will
// probably be a little different
UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"Back" style: UIBarButtonItemStyleBordered target: nil action: nil];

[[self navigationItem] setBackBarButtonItem: newBackButton];

secondViewController.place = self.selectedPlace;

[self.navigationController
 pushViewController:self.secondViewcontroller
 animated:YES];

您应该先执行pushViewController,然后分配place变量

为什么会有这样的结果:baladaViewController.place=self.selectedPlace;当你按下secondViewController时?不应该是secondViewController.place=self.selectedPlace吗?对不起,放错了…编辑了我的帖子。你确定self.selectedPlace不是零吗?是的!我放了一份所选地点的NSLog,并正确打印了它。物业地点是否为强?我想不出为什么这不管用。您的代码看起来很好。“如果(secondViewController==nil)”,此变量与内部if命令“secondViewController”变量不同,您重新定义了变量两次而不是使用“secondViewController.place=self.selectedPlace;”,请尝试使用“self.secondViewController.place=self.selectedPlace;”