【问题标题】:ipad vs iphone differences in storyboard and seguesipad vs iphone 在情节提要和转场方面的差异
【发布时间】:2012-03-04 11:20:02
【问题描述】:

这是我的第一个 iPad/Storyboard/SplitViewController,它有一个表格作为主表格,每一行都是详细视图的单独文档。我从 Xcode 4.2 模板开始。

我已经让 iPhone 一半工作了。我从 tableviewcell 连接了一个 segue 并接到了电话:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

这样我就可以正确调出详细视图了。

在 iPad 故事板上,我没有收到 prepareforsegue 调用。我尝试在 masterviewcontroller 之间创建一个 segue,然后尝试使用 tableviewcell 控件,但无法让它调用我的 prepareforsegue。

我也试过了:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [self performSegueWithIdentifier:@"segueDetailIpad" sender:nil]; 
}

这将调用我的 Segue,但 tableview 没有设置 indexPath。 (虽然它是在 iPhone 上设置的)。

另外,当我切换回iPhone版本时,它想调用相同的performeguewithidentifier(如上),但我必须在不同的@“segueDetailIpad”参数之间切换。

在我看来,我正在混合“旧”和“新”模型,需要找到一些方法来 让 iPad 使用 segue 而不是依赖 didSelectRowAtIndexPath。

希望这足以提供一些建议;-)

谢谢!

【问题讨论】:

  • 似乎将 segue 链接到导航控制器而不是视图控制器有助于此

标签: ipad storyboard


【解决方案1】:

正如 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];
}

【讨论】:

  • 哦,我刚刚意识到提交者回答了他们自己的问题。好吧,好吧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
  • 2013-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多