如何使用segues创建一个uiview,由故事板中的多个UIViewControllers使用

时间:2012-08-16 04:11:43

标签: ios ios5 storyboard

基本上我想要做的是将UIView包含在storyboard上的多个UIViewControllers中。我可以包含uiview,但UIView中的segues不起作用。 我有一个这样的故事板: enter image description here

我有一个带有2个UIViewControllers FirstSecond的标签控制器。我有一个单独的UITableViewController与另外两个UIViewControllers AB,与segues连接。

我可以将表格视图添加到FirstSecond视图作为子视图,但是当我点击单元格时,它不会转到下一个屏幕AB 。我有点弄明白为什么它不起作用,但却无法找到实现这一目标的最佳方法。

有什么好办法吗?我是故事板的新手,但一段时间以来一直在开发iOS应用程序。

修改

我将tableViewController添加到每个View的方式如下:

self.tableViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"theTableViewController"];
[self.view addSubview:_tableViewController.tableView];

当点击表视图中的单元格时,prepareTse:segue:sender被调用,但没有推送到导航控制器,因为表视图控制器在每个视图控制器中只是一个子视图

EDIT2:

我发布了我的测试项目here

2 个答案:

答案 0 :(得分:1)

您可以尝试两种方法。

1.直接在tableview单元格和下一个视图控制器之间创建一个segue。我想强调的是,除非尝试下面的方法,否则不要在tableview或view与下一个视图控制器之间创建segue。

2.将此代码添加到您的tableview控制器:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([indexPath row]) {
        [self performSegueWithIdentifier:@"segueToB" sender:self];
    }else {
         [self performSegueWithIdentifier:@"segueToA" sender:self];
    }
}  

答案 1 :(得分:0)

我终于想出了如何在子视图中制作segue。实际上非常简单。看来我需要将视图控制器作为“childViewControllers”

添加到主视图控制器中

而不是

self.tableViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"theTableViewController"];

我确实喜欢这个:

[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"theTableViewController"];
[self.view addSubview:_tableViewController.tableView];

和childViewController中的segue按预期工作。谢谢你们的帮助。