希望在iPhone故事板应用程序中最大限度地重用



我正在编写一个复杂的故事板应用程序,当涉及到跨视图控制器和不同应用程序路径的代码重用时,我遇到了一些问题。

我可以切换到未直接连接到当前ViewController的ViewController吗?

如何有条件地从一个按钮切换到几个ViewController?两者都连接不起作用。

我可以从应用程序中的任意位置输入ViewController序列吗?

只是出现了几个问题。有人有什么想法或好的例子吗?

我可以切换到未直接连接到当前ViewController的ViewController吗?

不是用segue。但是,您可以像处理.xib文件一样,以模式从情节提要中推送或呈现viewController。

// if self was created from code or from a .xib:
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryBoard" bundle:nil];
// if self was instantiated from within a storyboard:
UIStoryboard *storyBoard = self.storyboard;  
MyFancyViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"MyFancyViewControllerIdentifier"];
[self presentModalViewController:viewController animated:YES];

但您必须先设置标识符。在情节提要中选择viewController,然后在属性检查器中执行此操作。

一旦MyFancyViewController可见,您就可以使用它的所有分段。在代码和故事板片段之间切换可能会让人觉得奇怪,但这并没有错。它使整个故事板真正可用。


如何有条件地从一个按钮切换到几个ViewController?两者都连接不起作用。

将从viewController(而不是从按钮或任何其他视图)开始的两个或多个分段添加到目标viewControllers。例如,在状态栏开始拖动控件。为它们设置标识符,并使用如下代码:

if (someState) {
    [self performSegueWithIdentifier:@"MyFirstSegueIdentifier" sender:somethingOrNil];
}
else {
    [self performSegueWithIdentifier:@"MySecondSegueIdentifier" sender:somethingOrNil];
}

我可以从应用程序中的任意位置输入ViewController序列吗?

是的,如果您使用"老派"视图控制器管理。类似于第一部分。实例化您的viewController并将其与代码一起呈现。

最新更新