答えを探していると、同じ問題を抱えている人がたくさん見つかりました。私はそれを自分で考え出したので、ここに私の解決策があります。他の人にも役立つことを願っています。
ステップ 1. SplitViewController プロジェクトを作成します。すでにプロジェクトがある場合は、この手順をスキップしてください ;)

ステップ 2.
2 つの異なる viewController を追加します。この場合、私はそれらを AbcViewController と XyzViewController と呼びます。

ステップ 3.
iPad ストーリーボードに移動し、ストーリーボードから DetailViewController を削除します。次に、2 つの新しい viewController を追加します。

ステップ 4.
viewController のクラスと Storyboard ID を設定します。

ステップ 5.
MasterViewController.h に移動し、コードを以下のコードに置き換えます。
#import <UIKit/UIKit.h>
@class AbcViewController;
@class XyzViewController;
@interface MasterViewController : UITableViewController
@property (strong, nonatomic) AbcViewController *abcViewController;
@property (strong, nonatomic) XyzViewController *xyzViewController;
@end
ステップ 6.
次に、MasterViewController.m ファイルに移動し、次のコードに置き換えます。
注:既存のプロジェクトがあり、置き換えたくない場合は、手順 7 のコードを使用してください。
#import "MasterViewController.h"
#import "DetailViewController.h"
@interface MasterViewController () {
NSMutableArray *_objects;
}
@end
@implementation MasterViewController
- (void)awakeFromNib
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
self.clearsSelectionOnViewWillAppear = NO;
self.preferredContentSize = CGSizeMake(320.0, 600.0);
}
[super awakeFromNib];
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.detailViewController = (DetailViewController*)[[self.splitViewController.viewControllers lastObject] topViewController];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table View
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 2;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
if (indexPath.row == 0) {
cell.textLabel.text = @"ABC";
}
if (indexPath.row == 1) {
cell.textLabel.text = @"XYZ";
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
self.abcViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"ABC"];
self.xyzViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"XYZ"];
if (indexPath.row == 0) {
NSArray *newVCs = [NSArray arrayWithObjects:[[[self splitViewController ] viewControllers ] firstObject ] , self.abcViewController, nil];
self.splitViewController.viewControllers = newVCs;
}
if (indexPath.row == 1) {
NSArray *newVCs = [NSArray arrayWithObjects:[[[self splitViewController ] viewControllers ] firstObject ] , self.xyzViewController, nil];
self.splitViewController.viewControllers = newVCs;
}
}
@end
ステップ 7。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
self.abcViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"ABC"];
self.xyzViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"XYZ"];
if (indexPath.row == 0) {
NSArray *newVCs = [NSArray arrayWithObjects:[[[self splitViewController ] viewControllers ] firstObject ] , self.abcViewController, nil];
self.splitViewController.viewControllers = newVCs;
}
if (indexPath.row == 1) {
NSArray *newVCs = [NSArray arrayWithObjects:[[[self splitViewController ] viewControllers ] firstObject ] , self.xyzViewController, nil];
self.splitViewController.viewControllers = newVCs;
}
}
それだけです。プロジェクトを実行して楽しんでください:)