У меня есть приложение для iPad с UISplitViewController в нем (UsersSplitViewController).На левой стороне (ROOT) я установил UINavigationController (в то время как правая сторона используется для пользовательского представления).Контроллер навигации имеет иерархию из 2 контроллеров представлений (2 разных табличных представления).Пока я помещаю второй табличный вид в стек (выбирая строку в первом табличном представлении), все работает просто отлично: анимация состоит во втором скользящем табличном представлении, скользящем справа (по умолчанию).Однако, когда я касаюсь кнопки «Назад», когда отображается второй контроллер, вместо анимации только навигационного контроллера, весь SplitViewController анимируется (скользящий сверху экрана!).Очевидно, это уродливо, и только то, что я не хочу ... может ли кто-нибудь помочь?
Здесь все основные контроллеры устанавливаются (внутри AppDelegate):
usersSplitViewController=[[UISplitViewController alloc] init];
usersRootViewController=[[UsersRootViewController alloc] initWithDataSource:self];
usersRootViewController.dataSource=self;
usersRootViewController.appDelegate=self;
usersDetailViewController=[[UsersDetailViewController alloc] init];
usersDetailViewController.dataSource=self;
usersDetailViewController.appDelegate=self;
usersDetailViewController.urvc=usersRootViewController;
usersRootViewController.usersDetailViewController=usersDetailViewController;
usersSplitViewController.viewControllers=[NSArray arrayWithObjects:usersRootViewController,usersDetailViewController,nil];
usersSplitViewController.delegate=usersDetailViewController;
[usersRootViewController release];
вот где внутри UsersRootViewController (подкласс UINavigationController) я создаю экземпляры tableViews, которые должны быть показаны:
UITableViewController *userKindTableViewController=[[UITableViewController alloc] init];
//first tableView:
userKind=[[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped];
userKind.dataSource=self;
userKind.delegate=self;
userKindTableViewController.tableView=userKind;
userKindTableViewController.contentSizeForViewInPopover=CGSizeMake(320.0, 200.0);
[self pushViewController:userKindTableViewController animated:NO];
[userKindTableViewController release];
//second tableView:
usersOfKindTableViewController =[[UITableViewController alloc] init];
usersOfKind=[[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain];
usersOfKind.dataSource=self;
usersOfKind.delegate=self;
usersOfKindTableViewController.tableView=usersOfKind;
usersOfKindTableViewController.contentSizeForViewInPopover=CGSizeMake(320.0, 600.0);
наконец, я нажимаю второй TableView в первом из них "didSelectRowAtIndexPath":
[self pushViewController:usersOfKindTableViewController animated:YES];
Спасибо