iPhone программно выбирает вкладку И нажимает контроллер просмотра - PullRequest
3 голосов
/ 14 октября 2011

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

Я пытаюсь вернуть вещи в вид входа в Facebook. Для этого требуется программный выбор вкладки И нажатие с этой вкладки на отдельный контроллер представления.

Я могу программно выбрать вкладку без проблем:

[[UIApplication sharedDelegate].tabBarController setSelectedIndex:4];

Но я не могу выдвинуть контроллер представления из недавно выбранной вкладки. Я пробовал

AboutViewController *nextViewController = [[AboutViewController alloc] initWithStyle:UITableViewStyleGrouped];
    ((AboutViewController *)nextViewController).hidesBottomBarWhenPushed = NO;
    [[[[[UIApplication sharedDelegate] tabBarController] selectedViewController ] navigationController] pushViewController:nextViewController animated:NO];
    [nextViewController release];

и

AboutViewController *nextViewController = [[AboutViewController alloc] initWithStyle:UITableViewStyleGrouped];
    ((AboutViewController *)nextViewController).hidesBottomBarWhenPushed = NO;
    [[[[[UIApplication sharedDelegate] tabBarController] navigationController] pushViewController:nextViewController animated:NO];
    [nextViewController release];

Возможно ли это сделать?

Ответы [ 2 ]

6 голосов
/ 24 октября 2011

попробуйте это:

AboutViewController *nextViewController = [[AboutViewController alloc] initWithStyle:UITableViewStyleGrouped]; 
[[self.tabBarController.viewControllers objectAtIndex:4] pushViewController: nextViewController animated:NO]; 
[nextViewController release];
0 голосов
/ 04 декабря 2015

Вот решение Swift, если оно кому-нибудь нужно:

   func goToHelpViewController(){
                dispatch_async(dispatch_get_main_queue(), { () -> Void in
                    self.tabBarController?.selectedIndex = 3
                    let settingsStoryBoard = UIStoryboard(name: "SettingsSection", bundle: nil)
                    let helpViewController = settingsStoryBoard.instantiateViewControllerWithIdentifier("HelpViewController") as! HelpViewController
                    let settingsRootNavigationController = self.tabBarController?.viewControllers![3] as! UINavigationController

          settingsRootNavigationController.popToRootViewControllerAnimated(false)
                    settingsRootNavigationController.pushViewController(helpViewController, animated: true)
                })
            }

В моем случае пришлось перейти от вложенного viewController на вкладке 2 к другому вложенному контроллеру представления на вкладке 4.

...