Ios 使用prepareForSegue传递数据无效

Ios 使用prepareForSegue传递数据无效,ios,objective-c,parse-platform,Ios,Objective C,Parse Platform,我使用prepareforsgue将2个值传递给PFQueryViewContoller。这两个属性都在头文件(public)中定义。你可以在下面的代码中看到,我将它们传递了两次(一次没有测试county是否为null,一次检查它是否为null。我这样做只是为了强调,在调用prepareforsegue之前,这个问题与是否在我的代码中的其他地方设置county无关。有人知道为什么这可能不起作用吗?这可能是一个非常愚蠢的错误。我检查了t的名称he segue(甚至复制并粘贴到preparefors

我使用prepareforsgue将2个值传递给PFQueryViewContoller。这两个属性都在头文件(public)中定义。你可以在下面的代码中看到,我将它们传递了两次(一次没有测试county是否为null,一次检查它是否为null。我这样做只是为了强调,在调用prepareforsegue之前,这个问题与是否在我的代码中的其他地方设置county无关。有人知道为什么这可能不起作用吗?这可能是一个非常愚蠢的错误。我检查了t的名称he segue(甚至复制并粘贴到prepareforsegue方法中,以防我漏掉了一个打字错误)。此外,目标viewcontroller没有嵌入到任何其他视图控制器中。这是一个自定义segue,以防出现问题

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

if ([[segue identifier] isEqualToString:@"toPizzaSpots"])
{
    // Get reference to the destination view controller
    PizzaSpotTVC *vc = [segue destinationViewController];


    // Pass any objects to the view controller here, like...
    vc.county = self.county;
    vc.no = 8;
    if (self.county){

    vc.county = self.county;
    vc.no = 8;
    }

   }
  }

查看通过
prepareforsgue:sender:
传入的属性值无法在init方法内完成。在调用
prepareforsgue
时,目标视图控制器的init方法已被调用。这些属性的值将在调用viewDidLoad时设置,因此可以安全地访问访问它们。

InitWithCoder是创建PFQueryViewContoller时在ViewController生命周期中调用的第一个方法。为了访问prepareForSegue方法设置的属性,您需要在viewDidLoad方法中访问它们。感谢rdelmar回答这个问题。请为处理此问题的其他人提供参考,如果更改解析查询所依赖的viewDidLoad方法中的属性(例如,从解析数据库中的适当表中提取),viewDidLoad在足够的时间内执行,以发送此parseClassName进行解析,从而正确执行查询。最初,当我尝试在initWithCoder方法中访问属性时,这是我关心的问题,但它太早了,无法工作-我认为需要在那里才能使解析查询工作(但事实并非如此-viewDidLoad足够早了)

顺便说一句,我在if中插入了NSLogs([[segue identifier]IsequalString:@“Topizzapots]”)有条件确保代码在我退出时被调用并且正在被调用。我的PfQueryViewContentller有一个名为initWithCoder的方法,这与为什么数据没有进入我的destinationViewController有关系吗?什么“不起作用”意思是?segue是否成功执行,但数据没有传递?数据传输以何种方式不起作用?在
PizzaSpotTVC
中,您在什么时候确定数据没有被传输?是的,应用程序像普通的PFQueryViewContoller一样转换,但当我记录pr的值时,会在该viewcontroller内我设置的属性为空。-(id)initWithCoder:(NSCoder*)aCoder{self=[super initWithCoder:aCoder];if(self){initWithCoder方法中的所有其他内容都可以正常执行