2014-01-19 5 views
0

Я разрабатываю небольшое приложение для музыки, в котором первый вид включает в себя весь список песен в Tableview и когда пользователь нажимает на одну строку (песню), она берет их во второй вид. & Воспроизведение песни их (включая кнопки воспроизведения/паузы). Теперь я возвращаюсь в First View from Second View, используя кнопку «Назад», чтобы выбрать другую песню. И их одна кнопка в «Первом представлении» просто переключает представления (т. Е. На текущую исполняемую песню), но она воспроизводит ту же самую песню с начала, но не из ее текущей игры. Его похоже на кнопку «Сейчас» в приложении «Фондовая музыка» в iOS. Im использованием раскадровки & перетекаетПереключение просмотров без увольнения Просмотр

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
temp = indexPath.row; 
[tableView deselectRowAtIndexPath:indexPath animated:NO]; 
[self performSegueWithIdentifier:@"Player" sender:self]; 

} 
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
if([[segue identifier] isEqualToString:@"Player"]) 
    { 

    MPMediaItem *item = [itemCollections objectAtIndex:temp]; 
    NSString *trackInfo = [[NSString alloc] initWithFormat:@"%@- %@",[item valueForProperty:MPMediaItemPropertyTitle],[item valueForProperty:MPMediaItemPropertyArtist]]; 
    MPMediaItemArtwork *artwork = [item valueForProperty:MPMediaItemPropertyArtwork]; 
    NSURL *tempURL = [item valueForProperty:MPMediaItemPropertyAssetURL]; 
    playerController = [segue destinationViewController]; 
    playerController.fileUrl1 = tempURL; 
    playerController.globalVar = [NSNumber numberWithInteger:temp]; 
    playerController.labelTitleString = trackInfo; 
    playerController.img = [artwork imageWithSize:CGSizeMake(100, 100)]; 

} 

}

ответ

0

Вы могли бы идти об этом во многих отношениях - я хотел бы предложить реализацию singleton для обработки воспроизведения. Вместо того, чтобы постоянно сохранять эту точку зрения, этот диспетчер singleton (часть вашей модели) должен предоставить любому контроллеру необходимую информацию о текущей песне, альбоме, авторе и т. Д.

Ex. В вашем TableViewController:

- (void)viewDidLoad 
{ 
    [self setSong:[[PlaybackManager sharedInstance] currentSong]]; 
    if (self.song) { 
     //Add navigation item 
    } 
} 
+0

Извините, я не могу это понять. Фактически My App Delegate обрабатывает все воспроизведение музыки. –

+0

Я очень рекомендую вам не использовать AppDelegate для этого. Ваш AppDelegate не какой-то толстый общий синглтон; поместите эту логику туда, где она принадлежит. – John

+0

Аналогично, у меня этот код в приложении delegate.h @property (сильный, неатомный) AVAudioPlayer * audioPlayer; @property (nonatomic) NSInteger globalVar; @property (неатомный, сильный) NSMutableArray * itemm; я только объявил один экземпляр в делетете приложения, чтобы его легко было передать информацию воспроизведения в обоих представлениях. –

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