Я реализовал SWRevealViewController в своем проекте для элемента бокового меню. По сути, это музыкальное приложение. Песни с главного экрана будут воспроизводиться непрерывно, если пользователь находится на другом экране или в фоновом режиме. Следую этому руководству AppCoda (http://www.appcoda.com/ios-programming-sidebar-navigation-menu/)
- Когда приложение запускает главный экран, также запускается воспроизведение песни.
- Если пользователь переходит на другой экран, например плейлист, из пункта бокового меню. Главный экран находится в стеке, и песня воспроизводится отлично. Экран списков воспроизведения находится спереди.
- Снова захожу на главный экран из пункта бокового меню. Новый экземпляр создается вместо перехода на уже созданный главный экран. Теперь я могу слушать две песни одновременно. Один с первого главного экрана, а другой с нового главного экрана.
Это происходит для всех экранов. Как я могу решить эту проблему? Мне нужен только один экран из стека, а не много раз создавать один и тот же экран.
Вот мой код из бокового меню tableview Controller,
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 1) {
UINavigationController *navController;
if (indexPath.row == 0) {
ViewController *homeVC = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
navController = [[UINavigationController alloc] initWithRootViewController:homeVC];
[navController setViewControllers: @[homeVC] animated: YES];
} else if (indexPath.row == 1) {
SongsListViewController *songsListVC = [self.storyboard instantiateViewControllerWithIdentifier:@"SongsListViewController"];
navController = [[UINavigationController alloc] initWithRootViewController:songsListVC];
[navController setViewControllers: @[songsListVC] animated: YES];
} else if (indexPath.row == 2) {
PlayListViewController *songsListVC = [self.storyboard instantiateViewControllerWithIdentifier:@"PlayListViewController"];
navController = [[UINavigationController alloc] initWithRootViewController:songsListVC];
[navController setViewControllers: @[songsListVC] animated: YES];
}
[self.revealViewController setFrontViewController:navController];
[self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES];
}
}
С нетерпением жду вашей помощи. Заранее спасибо.