这是我的代码,发布在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 *vc = [segue destinationViewController];
vc.currentEnchantmentSelected = self.title;
}
}
这不会将“self.title”的值发送到“levelViewController”中的变量。为什么是这样?如果我使用字符串,它会发送它。
修改(levelViewController
):
@synthesize enchantment = _enchantment;
- (enchantmentViewController *)enchantment
{
if (!_enchantment){
_enchantment = [[enchantmentViewController alloc] init];
}
return _enchantment;
}
@property enchantment
在标题中声明。
答案 0 :(得分:1)
因此,从聊天开始,问题是您在didSelectRowAtIndexPath:
中设置了此属性,实际上在 prepareForSegue:sender:
之后使用故事板调用。 (当segue连接到表格中的单元格时)
所以解决方案就是直接在prepareForSegue:sender:
中完成这项工作。 sender
将是被点击的单元格。如果您需要该单元格的indexPath,您可以使用:
[self.tableView indexPathForSelectedRow]
祝你好运。