首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让UIViewController成为单身?

问让UIViewController成为单身?
EN

Stack Overflow用户
提问于 2012-03-23 15:45:08
回答 3查看 4K关注 0票数 6

在我的应用程序使用期间,用户应该能够启动,停止,转发背景音乐。(跨越几个UIViewControllers)。为此,我将我的MusicPlayer变成了单例(NSObject)。如果我在每个视图中为自己创建控件,它就能工作,但我想要的基本上是一个视图,它处理音乐播放器类,并且一直是存在的。用户还应该能够“隐藏”和“显示”视图,通过向左或向右滑动视图。因此,如果它是隐藏的,并且我改变了我的视图控制器,那么它也应该隐藏在新的视图控制器中,音乐也不应该被中断。

我在我的家庭视图控制器中尝试了这个,它起作用了:

代码语言:javascript
复制
UIView * playerView = [[UIView alloc] initWithFrame:CGRectMake(0, 300, self.view.bounds.size.width, 44)];
playerView.backgroundColor = [UIColor redColor];

[[[[UIApplication sharedApplication] delegate] window] addSubview:playerView];

在ApplicationDelegate中有办法做到这一点吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-23 15:50:03

如果您的单例MusicPlayer正在播放音乐,则在视图更改时不应中断音乐。而不是为每个视图控制器创建音乐控件,您可以添加音乐控件视图作为窗口的子视图,并确保它保持在所有其他视图之上。

更新:在您的应用程序委托中,通常有一些代码来设置主视图(即applicationDidFinishLaunching方法)。我假设您有一个主导航或选项卡控制器,您可以在其中执行其他所有操作。因此,在将其视图添加到窗口后,创建并添加您的音乐播放器控制器视图,并将其作为窗口的子视图添加。只要您不向窗口添加其他视图(如果您添加了,您只需将音乐控件移回顶部),它将保持在顶部。

我会使用一个单例MusicPlayerController视图控制器,它拥有音乐播放器控件视图。这样,其他视图控制器可以轻松地显示或隐藏控件。

票数 7
EN

Stack Overflow用户

发布于 2012-03-23 15:55:52

如果使用容器视图控制器(例如UINavigationController),那么所有视图控制器都会在彼此之间切换,并且可以在容器的顶部添加MusicPlayer控件(最简单的方法是让它与导航控制器具有相同的父控件),这种方式只创建一次视图,而不取决于它下面显示的视图。

票数 0
EN

Stack Overflow用户

发布于 2014-03-05 00:11:42

你不能:How to add button to UINavigationController

“将UIbarButtonItem添加到UIViewController上,而不是在UINavigationController上。导航控制器显示顶部viewVontroller的导航项,而不是它本身。”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9842221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档