我在ViewController中有一个音频播放器。当在另一个ViewControllerDidSelectRowtableview中选择一首歌曲时,我将其称为viewcontroller。我面临的问题是当我选择一首歌曲时,它会推送到Audioplayer View Controller并开始播放,但是当我按回去并从专辑中选择另一首歌曲时,上一首歌曲并没有停止,在选择新歌曲时它仍会播放。 。而先前选择的歌曲也会一起播放。对于每首歌曲的选择,将推送音频播放器AlbumViewController的新实例,并一起播放所有选择的歌曲。我的带有viewcontroller的相册控制器选择了行代码,如下所示

 viewContObj=[[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];  //viewcontroller=audio player controller
   [self.navigationController pushViewController:viewContObj animated:YES];
   viewContObj.url =[NSURL URLWithString:albumURLstring];
  [viewContObj playLiveStream:nil];


音频播放器的播放方法如下。

   -(IBAction)playLiveStream:(id)sender

{ if ( ![streamer isPlaying] )

{   [self createStreamer];
    [self setButtonImageNamed:@"loadingbutton.png"];
    [streamer start];
}
else
{   [self setButtonImageNamed:@"play.png"];
    [streamer pause];
}}

最佳答案

像这样在.m文件的@interface部分中放置一个ivar

@property (strong, nonatomic) ViewController *playerView;


并在viewDidLoad方法中分配init如下

playerView=[[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];


并在tableView: didSelectRowAtIndexPath:方法中执行以下操作

playerView.url =[NSURL URLWithString:albumURLstring];
[playerView playLiveStream:nil];
[self.navigationController pushViewController:playerView animated:YES];


这可以解决您的问题:)

关于ios - 每次都会生成一个新的ViewController实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15292577/

10-15 10:59