在不关闭View的情况下切换视图

时间:2014-01-19 06:21:49

标签: ios xcode ios6 storyboard views

我正在开发一个小型音乐应用程序,其中第一个视图包含Tableview中所有歌曲列表,当用户点击任何一行(歌曲)时,它将它们带到第二个视图&播放他们的歌曲(包括播放/暂停按钮)。现在我使用后退按钮返回第二视图的第一视图以选择另一首歌曲。它们是First View中的一个按钮,仅用于切换视图(即当前播放的歌曲),但它从头开始播放同一首歌,但不播放当前播放的歌曲。它类似于iOS中的股票音乐应用程序中的现在播放按钮。 我正在使用故事板&塞格斯

-(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)];

}

}

1 个答案:

答案 0 :(得分:0)

你可以通过多种方式解决这个问题 - 我建议实施一个singleton来处理媒体播放。这个单身经理(模型的一部分)应该为任何控制器提供有关当前歌曲,专辑,作者等的所需信息,而不是一直保留该视图。

实施例。在TableViewController中:

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