【发布时间】:2011-06-16 18:50:15
【问题描述】:
我正在构建一个在 TabBarController 上加载 5 个项目的 iPhone 应用程序。
当应用加载时,第一个视图是一个音频播放器(MyAudioPlayerViewController 的一个实例)
假设用户开始在 MyAudioPlayerViewController 上播放歌曲,然后决定点击 第二个 Tab Bar Item,它在 UITableView 可供选择。用户做出一个选择,这会导致另一个 UITableView(有一些其他选项可供选择),然后他们做出另一个选择,导致最终的 ViewController,它也是一个音频播放器。
我需要这个最终的 UIViewController 与第一个播放初始歌曲的 SAME 相同,并且 不是 MyAudioPlayerViewController 的新实例.
为什么我需要这个配置?我需要它,因为在用户对上一个 UITableView 做出最终选择的那一刻,正在播放的歌曲必须停止。
具有 MyAudioPlayerViewController 的最终视图必须能够访问正在播放音频的自定义 NSObject 类,使其停止当前歌曲。
现在我有这段代码正在调用显示最终 UIViewController 的 MyAudioPlayerViewController:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
MyAudioPlayerViewController * myAudioPlayerViewController = [[MyAudioPlayerViewController alloc] initWithNibName:@"MyAudioPlayerViewController" bundle:nil];
[self.navigationController pushViewController:myAudioPlayerViewController animated:YES];
[myAudioPlayerViewController changeText:[arraySingerList objectAtIndex:indexPath.row] withSong:[arraySongList objectAtIndex:indexPath.row]];
[myAudioPlayerViewController release];
}
正如你所看到的,它创建了一个 MyAudioPlayerViewController 的新实例,这与应用程序启动时的第一个实例无关,然后我可以在我的自定义 NSObject 类(播放器本身)上调用该方法,负责停止上一个正在播放的音频,因为它受到保护。
对于这种情况是否有任何解决方案,或者我是否应该使用其他方法重新构建所有内容?
谢谢!
【问题讨论】:
标签: iphone objective-c cocoa-touch uitableview uiviewcontroller