Я думаю, что это можно сделать. В вашем приложении делегат вы обычно делаете что-то вроде
[window addSubview:navController.view]
. UIWindow - это просто UIView. Поэтому, если вы создадите два UIView
ivars в UIViewController
, который будет содержать два контроллера навигации, вы сможете выполнить аналогичную вещь:
@interface MyViewController : UIViewController
{
UIView* upperView;
UIView* lowerView;
}
и т.д ...
MyUpperRootViewController* myUpperRVC = [[MyUpperRootViewController alloc] init...
UINavigationController* myUpperNavController = [[UINavigationController alloc] initWithRootViewController:myUpperRVC];
[upperView addSubview:navController.view];
[myUpperRVC release];
и что-то похожее на lowerView
.
В представлении root или последующих представлениях, помещенных в контроллеры, доступ к ним осуществляется обычным способом, как если бы был один контроллер nav. [self.navigationController push...
должен вести себя нормально.
Для анимации в (и из) контроллерах представления, просто примените анимацию к представлениям - upperView или lowerView. Возможно, вы захотите начать с их кадров с видимого экрана, а затем изменить их на что-то видимое внутри блока анимации.