0

我有一个 iOS 6 应用程序,我正在更新它以使用 iOS 7 并使其使用故事板。我正在尝试使用多个故事板,以便我可以将我的项目分解为应用程序中每个屏幕的模块。到目前为止,这一切都很好,但现在我需要提供一种在各种故事板之间导航的方法,同时仍然像在 iOS 6 中那样进行工作(但更新了艺术品)。

我没有在我现有的 iOS 6 应用程序中使用 UINavigationController 并且我不希望使用它,因为到目前为止我已经能够使用 UIButton 轻按手势上的代码在 XIB 之间来回导航。UINavigationController 无法轻松自定义导航按钮的外观,这是我迄今为止所了解的。

我发现这种在不同故事板上的视图控制器之间移动的非常干净的方式https://github.com/rob-brown/RBStoryboardLink通过将故事板的名称作为属性传递。

但它似乎只在使用 UINavigationController 时才有效。在没有 UINavigationController 的情况下,我收到一个错误“仅当源控制器由 UINavigationController 的实例管理时才能使用推送转场”。

有没有办法只使用上面的 RBStoryboardlink 而不需要 UINavigationController 来在故事板之间导航?

4

1 回答 1

1

Push segues can only be used when the source controller is managed by an instance of UINavigationController

这意味着您正在尝试将视图控制器推送到源,而源没有任何导航控制器堆栈。在这种情况下,您应该尝试将实例化的视图控制器的视图作为子视图添加到源视图控制器的视图中。

 UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
 UIViewController *viewController = [mainStoryboard instantiateInitialViewController];
 [self.view addSubview:viewController.view];

或者您以模态方式呈现,这完全取决于您的要求。

 UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
 UIViewController *viewController = [mainStoryboard instantiateInitialViewController];
 tabBarViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
 [self presentViewController:tabBarViewController animated:NO completion:NULL];
于 2013-10-30T06:52:03.533 回答