0

基本上我想要做的是将 UIView 包含到情节提要上的多个 UIViewControllers 中。我可以包含 uiview,但 UIView 中的 segues 不起作用。我有一个这样的故事板: 在此处输入图像描述

我有一个带有 2 个 UIViewControllersFirstSecond. 我有一个单独的 UITableViewController 和另外两个 UIViewControllers A,并B与 segues 连接。

我可以将表格视图添加到视图中FirstSecond作为子视图,但是当我点击单元格时,它不会转到下一个屏幕AB. 我有点想明白为什么它不起作用,但就是想不出最好的方法来完成这个。

有什么好的方法可以做到这一点吗?我是故事板的新手,但开发 iOS 应用程序已经有一段时间了。

编辑:

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

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

当点击表视图中的单元格时,会调用 prepareForSegue:segue:sender,但不会推送到导航控制器,因为表视图控制器作为子视图位于每个视图控制器中

编辑2:

我在这里发布了我的测试项目

4

2 回答 2

1

您可以尝试 2 种方法。

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

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

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([indexPath row]) {
        [self performSegueWithIdentifier:@"segueToB" sender:self];
    }else {
         [self performSegueWithIdentifier:@"segueToA" sender:self];
    }
}  
于 2012-08-16T06:35:04.430 回答
0

我终于想出了如何在子视图中进行segue。其实很简单。看来我需要将视图控制器作为“childViewControllers”添加到主视图控制器

代替

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

我确实喜欢这样:

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

并且 childViewController 中的 segues 按我的预期工作。谢谢你们的帮助。

于 2012-08-26T19:28:51.950 回答