在父视图控制器上注册 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 是我在代码中所称的任何内容。
我想知道是否可以在父视图控制器上注册一个 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 是我在代码中所称的任何内容。