Objective-Cになります。
AppDelegate.mには処理として以下を用意してあります。
イメージとしてはタブで画面切り替えでき、その画面はUISplitViewControllerとなっています。

_tabAViewController = [[AViewController alloc]initmake];
_tabBViewController = [[BViewController alloc]initmake];
baseViewController.viewControllers = @[_tabAViewController, _tabBViewController ];①

AViewControllerBViewControllerクラスではCommonSplitViewControllerクラスを継承しており、
CommonSplitViewControllerクラスはUISplitViewControllerを継承しています。
また、baseViewControllerUITabBarControllerを継承したクラスです。

AViewControllerBViewControllerクラスでは以下を用意しています。

- (id)initmake
{
  listView = [[ListView alloc]init];
  listView.showView = self.view;②
    return [self init];  // 12/3追記
}
- (void)viewDidLoad
{
    [super viewDidLoad];③
    ~~
}

CommonSplitViewControllerクラス処理として以下を用意しています。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
    }
    return self;
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    // 区分線を追加
    UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(300, 0, 1, 600)];
    [self.view addSubview:lineView];④
}

①を実施すると、②が呼ばれ、その後③がよばれます。
③から継承元のCommonSplitViewControllerクラスのviewDidLoadが実施されるのは
理解できるのですが、さらに④→③→④…が繰り返されてしまいます。
④の処理でなぜ③が呼ばれるのでしょうか?

また、②実行で③が呼ばれることもいまいち理解できていません…

ListViewのクラスですがBaseTableViewクラスを継承しています。
BaseTableViewはUITableViewを継承したクラスになっております。

@interface ListView : BaseTableView <UITableViewDelegate, UITableViewDataSource> {
}
@property (nonatomic) UIView *showView;