Я не смотрел ваш источник, но распространенная проблема с разделенными представлениями - это делегаты.
Когда вы помещаете новый rootController в стек навигации, вы должны убедиться, что в нем есть указатель на detailViewController, с которым вы хотите, чтобы он общался. Вы можете проверить его регистрацию делегата, прежде чем пытаться обновить его:
В вашем SubCatVC (или любом другом руте в этом отношении):
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//do stuff, init alloc vc's....
NSLog(@"DELEGATE: %@",self.delegate);
//push/delegate etc..
}
Если вы найдете его ноль, скопируйте исходный делегат root, или когда вы добавляете новую деталь, сообщите / установите корень, с которым вы хотите связаться.
Если вам нужно больше подробностей, просто спросите.