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