我们正在使用UInavigationController,其中一个视图是播放音轨的视图。
我们正在使用AVfountation框架。
单击按钮,我们导航到音频列表(播放音乐的位置)
-(IBAction)audioBtnClicked
{
audiolist *audio=[[audiolist alloc] initWithNibName:@"audiolist" bundle:nil];
[self.navigationController pushViewContrller:audio animated:YES];
[audiolist release];
}
当用户播放音乐并导航时,音乐继续播放
问题:当用户导航回到歌曲列表并播放另一首曲目时,
同时播放2首歌曲。
我们认为,每次用户向后导航时,都会创建一个新的
audiolist
实例。我们只希望有一个
audiolist
实例。我们如何使audiolist
的第一个实例具有持久性,以及如何引用它? 最佳答案
你必须做
[audio release];
并不是
[audiolist release];
音频列表似乎是您的班级名称。命名约定说,类应使用大写字母和驼峰式,因此应使用AudioList。这将使您的代码更具可读性。
要拥有一个AudioList的单个共享实例,可以执行以下操作:
在您的标头中添加一个类方法:
+ (AudioList *) sharedInstance;
然后将其添加到您的实现文件中:
@implementation AudioList
static AudioList *gSharedInstance = nil;
+ (AudioList *) sharedInstance {
if (gSharedInstance == nil) {
gSharedInstance = [[AudioList alloc] init];
}
return gSharedInstance;
}
现在,您随时可以使用
[AudioList sharedInstance];
干杯。
关于objective-c - 如何在iOS中拥有永久 View ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7768679/