在父视图控制器上注册 Segue 以在子视图控制器上使用

Register a Segue on a Parent View Controller to use on Child View Controller

我想知道是否可以在父视图控制器上注册一个 Segue 以在子视图控制器中使用。

示例:我有一个自定义 AlertViewController,我所有的主视图控制器都继承自 BaseViewController。我在其中大部分中使用这个自定义 AlertViewController 而不是 UIAlertView,我目前必须复制 AlertViewController 并将其连接到故事板中 BaseViewController 的每个子class。

有没有办法让我在 BaseViewController class 上将 segue 注册到 AlertViewController,以便任何子class 都能成功使用 performSegueWithIdentifier:sender:

我已经确定了一种方法来完成我在这里想要做的事情。我只需要在我的 BaseViewController class 中的 performSegueWithIdentifier:sender: 方法中手动执行 segue。

示例:

在我的 BaseViewController 中

- (void)performSegueWithIdentifier:(NSString *)identifier withSender:(NSObject *)sender {

    if ([identifier isEqualToString:@"MyCustomSegue"]) {
        MyNewViewController *MNVC = [self.storyboard instantiateViewControllerWithIdentifier:@"MyNewViewController"];

        ...

        [self presentViewController:MNVC animated:YES completion:nil];

        return;
    }

    [super performSegueWithIdentifier:identifier withSender:sender];
}

在我的 ChildViewController 中

[self performSegueForIdentifier:@"MyCustomSegue" sender:nil];

通过这种方法,我不再需要复制 MyNewViewController 故事板对象并将其连接到故事板中的每个 ChildViewController。但是,我必须在故事板中创建 MyNewViewController,并确保它的故事板 ID 是我在代码中所称的任何内容。