我正在学习斯坦福大学的iOS课程,并尝试制作模态视图控制器。在演示中,他们有一个按钮可以启动模态视图,当单击它时,函数prepareForSegue将被调用。我复制了代码并将其实现到我的项目中,唯一的区别是我的演示是在iPhone故事板上,而他们的演示是在iPad上。
我注意到,当我的模态视图控制器出现时,它不会在此之前调用prepareForSegue。我搜索了斯坦福项目,看看他们在调用prepareForSegue之前是否注册了任何segue行为,但没有找到任何证据。有人可以帮忙解决吗?我在Stack Overflow上搜索,发现用户都缺少了performSegueWithIdentifier的调用实现,然而,在斯坦福的演示中他们从未这样做。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier hasPrefix:@"Create Label"]) {
AskerViewController *asker = (AskerViewController *)segue.destinationViewController;
asker.question = @"What do you want your label to say?";
asker.answer = @"Label Text";
asker.delegate = self;
}
}
以下是一个Storyboard的示例:
这是我的Storyboard示例:
在调试器中,当我在Stanford Demo代码中停止时,调用堆栈显示Storyboard正在执行segue操作,我需要在我的Storyboard中配置什么才能实现同样的结果?
prepareForSegue:
没有被调用?我敢打赌它一定被调用了。唯一确定的方法是在其中的第一条语句上设置断点。你这样做了吗? - matt