Когда вы добавляете UINavigationController через Nib, он фактически создает экземпляр UINavigationController внутри файла nib с набором RootViewController по умолчанию (типа UIViewController) и с заголовком по умолчанию RootViewController.
При загрузкеперо, этот объект создается как часть загрузки кончика (то есть, когда вы инициализируете DocumentsViewController) - так что выход navigationControllerDocuments уже инициализирован как UINavigationController с уже установленным на нем ViewController по умолчанию.
Что я думаюпроисходит, когда вы вызываете 'initWithRootViewController' - вы вызываете это для уже инициализированного объекта - поэтому он снова запускает код инициализации - помещает второй контроллер представления (DocumentRootViewController) в стек, но тот, который был создан по умолчанию вперо уже там.
Что вы, вероятно, должны сделать, это забыть о создании одного в перо и инициализировать всю программу
то есть, где вы делаете:
[navigationControllerDocuments initWithRootViewController:rootViewController];
Я предлагаю вместо этого выполнить alloc и init:
[[navigationControllerDocuments alloc] initWithRootViewController:rootViewController];
Поскольку вы делаете это, вы действительно нене нужно добавлять контроллер навигации к пиру, поэтому, если это работает, вы должны удалить его из пера, поскольку вы заменяете его на этот в коде.