Как перейти к новому контроллеру представления из модального представления, которое реализует UITabBarController - PullRequest
1 голос
/ 20 сентября 2010

Вид представлен модально:

[self presentModalViewController:modalNavController animated:YES];

В этом представлении используется UITabBarController с 4 элементами. Один из этих элементов, «Информация», имеет кнопку, которая видна только при ее наличии. Если кнопка нажата, ее нужно передать другому контроллеру представления, но я также хотел бы сохранить панель вкладок в родительском представлении. Я не смог понять, как это сделать с или без сохранения панели вкладок. Я пробовал толкать и представлять модально во всех местах, которые я мог изобразить. Как это сделать правильно?

Создание панели вкладок:

    infoController.title = @"Info";
    streetViewController.title = @"Street View";
    reviewController.title = @"Reviews";

    streetViewController.tabBarItem.image = [UIImage imageNamed:@"flag.png"];
    infoController.tabBarItem.image = [UIImage imageNamed:@"openMarker.png"];
    reviewController.tabBarItem.image = [UIImage imageNamed:@"reviews.png"];


UITabBarController *tabBarController = [[UITabBarController alloc] init];
    tabBarController.view.frame = CGRectMake(0, 0, 320, 460);

    UINavigationController *infoNC = [[[UINavigationController alloc] initWithRootViewController:infoController] autorelease];
    infoNC.navigationBarHidden = YES;


[tabBarController setViewControllers:
    [NSArray arrayWithObjects:infoNC, streetViewController, reviewController, nil]];


[self.view addSubview:tabBarController.view];

1 Ответ

2 голосов
/ 20 сентября 2010

Когда вы добавляете контроллеры представления в контроллер панели вкладок, вам нужно сделать следующее:

MyCustomViewController *vc1 = [[MyCustomViewController alloc] initWithNibName:nil bundles:nil];
UINavigationController *nc1 = [[[UINavigationController alloc] initWithRootViewController:recipesRootView] autorelease];
[vc1 release];

, затем добавить nc1 вместо вашего пользовательского представления.

Затем в MyCustomViewController to push другой контроллер представления делает:

[self.navigationController pushViewController:(UIViewController *)page animated:YES];

Это должно сработать для вас и сохранить контроллер панели вкладок.

...