2

У меня есть следующая раскадровка программы настройкиStoryBoard - UITabBarController + UINavigationController - прыжки с одного навигационного контроллера к другим

Мне нужно прыгать от BodyMapViewController к контроллеру MoleDetailsView (как показано на рисунке), когда пользователь ударил кнопка

сохранить можно использовать вид модальный, который очень прост, но вопрос заключается в том, что я хочу, чтобы пользователь мог вернуться к MoleHistory и dermalHistory вид из MoleDetailsView

в основном мне нужно сделать следующие этапы:

  • переключатель на вкладке
  • Navigate корыта DermalHistoryView, а затем MoleHistoryView, чтобы добраться до MoleDetails просмотра

Storyboard

ответ

1

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

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

-(void)pushToMoleDetailViewController:(id)detailItem 
{ 

    UINavigationController *navCon = [self.navigationController.tabBarController.viewControllers objectAtIndex: 1]; 

    UIStoryboard *storyboard = self.storyboard; 
    DermalHistoryViewController *dermalHistory = [storyboard instantiateViewControllerWithIdentifier:@"DermalHistoryViewController"] 

    //configure dermal history here 


    NSMutableArray *viewControllers = [[self navigationController].viewControllers mutableCopy]; 
    [viewControllers addObject: dermalHistory]; 

    MoleHistoryViewController *moleHistory = [storyboard instantiateViewControllerWithIdentifier:@"MoleHistoryViewController"] 

    //configure mole history here 
    [viewControllers addObject: moleHistory]; 

    MoleDetailsViewController *moleDetails = [storyboard instantiateViewControllerWithIdentifier:@"MoleDetailsViewController"] 

    //configure mole details here 
    [viewControllers addObject: moleDetails]; 



    navCon.viewControllers = viewControllers; 
    self.navigationController.tabBarController.selectedIndex = 1; 
} 

Взгляните на этот вопрос: Push segue without animation

+0

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

+0

WOW благодарит за ваш ответ! единственное, что я изменил, - это установить массив viewControllers в пустой массив вместо текущих контроллеров представления, поэтому я не вижу представления камеры и bodyMap, когда я нажимаю кнопку «Назад». –

+0

Отлично, я рад, что это сработало! – mrosales