私はUIStoryboard
10以上UIViewControllers
と追加のを持っていましたContainerViews
。ビューをレイアウトし、ますますカスタマイズした後、UIStoryboard
ますます怠惰になりました。
私のアプローチは、single内にビューを設定することでしたUIStoryboards
。コントローラのロードはメニュー内で行われます。ここで、のNSArray
すべての識別子を使用してを設定します。UIViewController
これもUIStoryboard
:内で設定する必要があります。

メニューをロードするとき、私はループして、特定のからのby識別子NSArray
をロードします。これは私が別のスイッチを実装する必要があった場所です:UIViewControllers
UIStoryboard
UIStoryboards
self.arrayVCAll = [NSMutableArray new];
for ( NSArray *array in _arrayViewControllerAll ){
NSMutableArray *arrayTemp = [NSMutableArray new];
for (UIViewController *vc in array ){
NSString *strViewController = [NSString stringWithFormat:@"%@", vc];
UIStoryboard *storyboard;
if( [strViewController isEqualToString:@"CustomOneStoryboard"] ){
storyboard = [UIStoryboard storyboardWithName:@"FirstVC" bundle:nil];
} else if( [strViewController isEqualToString:@"CustomTwoStoryboard"] ){
storyboard = [UIStoryboard storyboardWithName:@"SecondVC" bundle:nil];
} else {
storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
}
UIViewController *controller = [storyboard instantiateViewControllerWithIdentifier:strViewController];
MyNavController *nav = [[MyNavController alloc] initWithRootViewController:controller];
[arrayTemp addObject:nav];
}
[self.arrayVCAll addObject:arrayTemp];
}
UINavigationController
私の場合、イニシャルを私のから分離した後、セグエに問題がありましたUIViewControllers
。イニシャルがない場合、セグエはnavigationControllerにプッシュしませんUINavigationController
。そのため、(NSArrayの)UINavigationController
それぞれにを追加して、正しく実行されるようにしました。また、クラスに接続する必要はありません。クラスに含めて、最初のに接続するだけです。UIViewController
UIStoryboardSegue
UINavigationController
UIStoryboard
UIViewController