我想知道是否可以在父视图控制器上注册Segue以在子视图控制器中使用。
示例:我有一个自定义AlertViewController
,我的所有主视图控制器都继承自BaseViewController
。我在大多数这些中使用这个自定义AlertViewController而不是UIAlertView,我现在必须复制AlertViewController并将它连接到我的故事板中的BaseViewController的每个子类。
我有没有办法将segue注册到BaseViewController类的AlertViewController,以便任何子类都可以成功使用performSegueWithIdentifier:sender:
?
答案 0 :(得分:0)
我已经确定了一种方法来做我想要的事情。我只需要在performSegueWithIdentifier:sender:
方法中的BaseViewController类中手动执行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,并确保它的storyboardID是我在代码中称之为的任何内容。