在iOS App中的多个故事板之间导航

时间:2015-11-16 08:57:39

标签: ios iphone

我希望在我的iOS应用中为每个UIView控制器提供单独的故事板文件。

那么我们如何为每个控制器分配不同的故事板?另外我们如何在这些之间进行导航?

我这样做是为了避免在很多人在UI上工作时发生svn冲突。

2 个答案:

答案 0 :(得分:0)

获取对故事板的引用......

UIStoryboard *someStoryboard = [UIStoryboard storyboardWithName:@"NameOfYourStoryboard" bundle:nil];

然后从该故事板中实例化初始视图控制器......

UIViewController *initialViewController = [someStoryboard instantiateInitialViewController];

或由其故事板标识符识别的其他一些视图控制器......

UIViewController *someOtherViewControllerFromTheStoryboard = [someStoryboard instantiateViewControllerWithIdentifier:@"SomeViewControllersStoryboardIdentifier"];

之后,您可以简单地推送(在导航控制器中)或呈现新的视图控制器。

自iOS 9.0起,您甚至可以通过故事板本身的故事板引用连接故事板: https://developer.apple.com/library/prerelease/ios/recipes/xcode_help-IB_storyboard/Chapters/AddSBReference.html

答案 1 :(得分:-1)

为不同的模块保留不同的故事板是一种很好的方法。您可以按如下方式在故事板之间实现导航: -

假设您在A视图控制器中并想要推送另一个名为FabIdeaDetailViewController的视图控制器,该控制器存在于名为FabIdeas的故事板中: -

FabIdeaDetailViewController *horizontalListController = (FabIdeaDetailViewController*)[UIViewController instantiateViewControllerWithIdentifier:@"FabIdeaDetailViewController" fromStoryboard:@"FabIdeas"];
[self.navigationController pushViewController:horizontalListController animated:YES];

现在推送另一个名为WishlistViewController的视图控制器,它位于名为Wishlist的故事板中:

UIViewController *WishlistViewController = [UIViewController instantiateViewControllerWithIdentifier:@"WishlistViewController" fromStoryboard:@"Wishlist"];
[self.navigationController pushViewController:WishlistViewController animated:YES];