У меня есть маршрут навигации, который выглядит следующим образом:
A
- это UITableViewController
, встроенный в контроллер панели вкладок.Нажатие на одну из строк переходит к B
, который является контроллером представления, встроенным в контроллер навигации.Нажатие на розовую кнопку на B
переводит контроллер вида C
, а касание «Недавних песен» переходит к D
.Наконец, нажатие песни на D
запускает метод uploadSong()
-(void) uploadSong {
ViewControllerB *viewControllerB = [self.storyboard instantiateViewControllerWithIdentifier:@"viewControllerB"];
ViewControllerA *viewControllerA = [self.storyboard instantiateViewControllerWithIdentifier:@"viewControllerA"];
NSArray *vcArray = @[self,viewControllerA,viewControllerB];
[self.navigationController setViewControllers:vcArray animated:YES];
[self performSegueWithIdentifier:@"unwindToViewControllerB" sender:self];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"unwindToViewControllerB"]){
ViewControllerB *viewControllerB = segue.destinationViewController;
viewControllerB.object = self.friendObject;
viewControllerB.spotifyDismiss = YES;
viewControllerB.hidesBottomBarWhenPushed = YES;
}
}
Все идет хорошо, и я в итоге возвращаюсь к B
с кнопкой возврата контроллера навигации, возвращающей меня к A
как я и хотел.Тем не менее, я обнаружил, что если я вместо этого нажму на элемент панели вкладок (внизу слева), он снова покажет мне D
вместо того, чтобы делать то, что обычно в приложениях, и приведет вас к первому контроллеру представления в стеке, который в этом случае будетbe A
.
Итак, мой вопрос: почему после моего отката моя кнопка возврата с B
переводит меня на A
, но нажатие на элемент панели вкладок переводит меня к D
вместоA