Objective c 如何在-prepareforsgue中使用属性?
以下是我在view1中发布的代码:Objective c 如何在-prepareforsgue中使用属性?,objective-c,xcode,Objective C,Xcode,以下是我在view1中发布的代码: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Make sure your segue name in storyboard is the same as this line if ([segue.identifier isEqualToString:@"toLevels"]) { levelViewController
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure your segue name in storyboard is the same as this line
if ([segue.identifier isEqualToString:@"toLevels"])
{
levelViewController *vc = [segue destinationViewController];
vc.currentEnchantmentSelected = self.title;
}
}
这不会将“self.title”的值发送到“levelViewController”中的变量。为什么会这样?如果我使用字符串,它会发送它
编辑(levelViewController
):
@属性附魔在标题中声明。因此,从聊天中,问题是您在didSelectRowAtIndexPath:
中设置了此属性,该属性实际上是在prepareforsgue:sender:
之后使用故事板调用的。(当segue连接到表中的单元格时)
因此,解决方案就是直接在prepareforsgue:sender:
中完成这项工作。发送方将是被点击的单元格。如果您需要该单元格的indexPath,可以使用:
[self.tableView indexPathForSelectedRow]
祝你好运。你说的“如果我使用字符串,它就会发送”是什么意思。你能用代码说明你在做什么吗?currentEnchantmentSelected
是视图吗?@FirozeLafeer如果我将self.title
更改为@“随机文本”
,我对levelViewController进行编码,使其标题更改为vc.currentEnchantmentSelected
currentEnchantmentSelected
是levelViewController
中的属性。因此,如果使用字符串,标题会更改,但如果使用属性,标题不会更改。我已经在许多其他属性中尝试过这个方法,但是我仍然没有在levelViewController
上得到任何关于标题的信息。好的,那么您是否检查了self.title不是nil?你能展示一下currentEnchantmentSelected
的声明吗?哦,还有一个明显的问题,你有任何编译器警告吗?让我们看看
[self.tableView indexPathForSelectedRow]