这是我的第一个iPad / Storyboard / SplitViewController,它有一个表作为主表,每行是一个单独的文档,用于详细视图。我从Xcode 4.2模板开始。
我让iPhone上半部分工作了。我从tableviewcell上找到一个segue并接到电话:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
由此我可以正确地调出细节视图。
在iPad故事板上,我没有收到预备电话。我试过在masterviewcontroller之间创建一个segue然后尝试了tableviewcell控件但是无法让它调用我的prepareforsegue。
我也尝试过:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self performSegueWithIdentifier:@"segueDetailIpad" sender:nil];
}
这将调用我的Segue,但tableview没有设置indexPath。 (虽然它设置在iPhone上。)
此外,当我切换回iPhone版本时,它想要调用相同的performseguewithidentifier(如上所述),但是我必须在不同的@“segueDetailIpad”参数之间切换。
在我看来,我正在混合“旧”和“新”模型,需要找到一些方法 让iPad使用segue而不是依赖didSelectRowAtIndexPath。
希望这足以提出一些建议; - )
THX!
答案 0 :(得分:0)
正如user589310所说,我可以通过在[segue destinationViewController]
中嵌入UINavigationController
来解决我的类似问题。
例如:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue destinationViewController] class] == [UINavigationController class])
{
[[[[segue destinationViewController] viewControllers] objectAtIndex:0] setDelegate:self];
}
else
[[segue destinationViewController] setDelegate:self];
}