0

我在故事板 iPhone 应用程序中有一个 UIViewController,我需要在多个地方重用它。在情节提要中,有一个 UIBarButtonItem 触发了另一个控制器的 segue。但是,在某些情况下,我想覆盖按钮的行为以连接到不同的视图控制器。我在想必须有一种方法可以使用指定目标视图控制器的消息来初始化视图控制器,或者在控制器初始化之后但在它被推送之前设置一些属性?

一个挑战似乎是无法以编程方式定义转场(基于我目前所读的内容),而且我认为我不能在情节提要的同一个视图控制器上拥有多个转场。所以我可能需要做这样的事情:

[self presentModalViewController:myNewVC animated:YES];

...而不是使用segue,但我不确定如何覆盖情节提要中定义的按钮的行为来做到这一点。

任何帮助表示赞赏。

4

1 回答 1

3

只需为某些条件创建一个IBAction和一个BOOL来选择应该实例化哪个视图控制器。

 UIViewController *viewController;
    if (someCondition) {
        viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"someViewID"];
    }else{
        viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"someOtherID"];
    }
    [self presentViewController:viewController animated:YES completion:nil];
于 2012-08-26T15:49:28.983 回答