Как добавить дополнительные контроллеры представления на NavigationController, но оставить TabBar? - PullRequest
2 голосов
/ 30 марта 2012

У меня есть приложение, которое запускается с базовым контроллером представления в корне моего контроллера навигации

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.navController.viewControllers = [NSArray arrayWithObject:[self getHomeViewController]];

    [[self getWindow] addSubview:self.navController.view];
    [[self getWindow] makeKeyAndVisible];

    return YES;
}

После выбора элемента навигации я нажимаю контроллер панели вкладок с несколькими контроллерами представления.

-(void)launchOptionWithTabBarController:(NSUInteger)selectedIndex
{
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:
                                             [self getFirstViewController], 
                                             [self getSecondViewController],
                                             nil];

    [self.tabBarController setSelectedIndex:selectedIndex];
    [self.navController pushViewController:self.tabBarController animated:YES];
}

Проблема в том, что мне нужно добавить еще один контроллер представления поверх того, который открыт в контроллере панели вкладок ... и когда я нажимаю один из них на контроллере навигации, вот так ..

- (void)launchNewViewControllerWithArray:(NSArray *)stuff
{
    self.newViewController = [self getNewViewController];

    [self.navController pushViewController:self.newViewController animated:YES];
}

Я больше не вижу навигацию по панели вкладок (и я предпочел бы видеть эту навигацию с каждым нажимаемым элементом).

Как изменить поток управления, чтобы элементы навигации на панели вкладокостаться на дне?

Ответы [ 2 ]

1 голос
/ 30 марта 2012

Вам необходимо добавить родительский контроллер навигации в контроллер панели вкладок, а не наоборот.Или представьте другой контроллер навигации, встроенный в контроллер панели вкладок, и вставьте в него новый контроллер представления.

0 голосов
/ 30 марта 2012

Вы можете добиться этого, нажав новый viewController на панели вкладок выбранного viewcontroller.так что вы можете написать свою функцию запуска, как это

- (void)launchNewViewControllerWithArray:(NSArray *)stuff
{
    self.newViewController = [self getNewViewController];

    [[self.tabbarController selectedViewController] pushViewController:self.newViewController animated:YES];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...