4

У меня есть 6 подклассов UIViewControllers, связанных с push segues с идентификаторами.Нажатие нескольких UIViewControllers в NavigationController

Они идут A> B> C> D> E> F. Я не могу найти способ реализации кнопки в контроллере A, который автоматически складывал бы все контроллеры до контроллера F и отображал контроллер F. Укладка должна выполняться в UINavigationController экземпляре, а не через (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated, потому что если я использую метод setViewControllers, то я теряю идентификаторы сегмента. Ty!

ответ

7

Вы должны быть в состоянии сделать это с pushViewController:animated:, как это:

// This method belongs to view controller A class 
-(void)pushToF { 
    // I am assuming that A is already in the navigation controller 
    UINavigationController *nav = self.navigationController; 
    UIViewController *b =[self.storyboard instantiateViewControllerWithIdentifier:@"B"]; 
    [nav pushViewController:b animated:NO]; 
    UIViewController *c =[self.storyboard instantiateViewControllerWithIdentifier:@"C"]; 
    [nav pushViewController:c animated:NO]; 
    ... // And so on, until F 
    UIViewController *f =[self.storyboard instantiateViewControllerWithIdentifier:@"F"]; 
    // You can push the last one with animation, so that end users would see it 
    [nav pushViewController:f animated:YES]; 
} 
+0

отлично работает, спасибо большое! Еще один вопрос. Если я реализую модальное представление на контроллере A, и у меня есть метод pushToF, который не имеет этого модального представления, как бы код был. Я знаю, что я должен сначала отказаться от модального представления, а затем выполнить то, что вы написали, но я не знаю, как структурировать. Я ценю вашу помощь. –

+0

@AndrejTrilavov Если '' A ''является модальным, вам нужно получить ссылку на контроллер навигации, отличный от' self.navigationController'. Вы также можете уволить кнопку и вызвать 'pushToF' из' viewWillDisappear: animated: ' – dasblinkenlight

+0

К сожалению, у меня есть другие кнопки на VC, поэтому' viewWillDisappear: animated: 'невозможно. Я знаю, что мне нужно «отменитьПросмотр контроля»: «Нет» и реализовать код, который вы мне предоставили, но не знаете, как его написать. Ty! –

Смежные вопросы