iphone - 继续执行方法,即使它的 ViewController 在 iOS 中消失

标签 iphone ios methods continue

我有一个 View 可以使用导航 Controller 推送另一个 View 。在第二个 View 中,我播放了一个音频,即使用户返回到第一个 View ,我也想继续播放,弹出第二个 View ,就像在 iPod 应用程序中一样。我该怎么做?

最佳答案

你应该从你的 View Controller 中抽象出你的音频播放,因为它不是真正相关的功能(而且它会让你做你想做的)。我建议创建一个单例对象,其功能是播放指定的歌曲、暂停/停止它并从中检索状态(例如正在播放等)。我不打算深入探讨什么是单例/如何制作单例,因为其他堆栈溢出帖子和快速谷歌搜索会产生结果,但基本前提是您创建一个类并将此方法添加到其中:

+ (id)sharedInstance
{
    static dispatch_once_t dispatchOncePredicate = 0;
    __strong static id _sharedObject = nil;
    dispatch_once(&dispatchOncePredicate, ^{
        _sharedObject = [[self alloc] init];
    });
    return _sharedObject;
}

然后你可以像这样创建一个方法:

+ (void)playSongWithFile:(NSString *)fileName
{
    // retrieve the file and play it
}

并且从您#import 单例对象的任何类中,您可以调用:

[[MySingleton sharedInstance] playSongWithFile:@"awesomesong.mp3"];

单例对象是只能实例化一次并在应用程序执行期间“持续存在”的对象,因此无论 View Controller 发生什么情况,它都会继续执行您告诉它的操作。

关于iphone - 继续执行方法,即使它的 ViewController 在 iOS 中消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8950698/

相关文章:

JavaScript,使用 indexOf() 和 lastIndexOf() 方法查找数组实例

javascript - 是否可以使用 HTML、CSS 和 Javascript 来创建可以访问 Iphone 蓝牙配对的 Iphone 应用程序?

iphone - NSNotificationCenter

iphone - UISegmentedControl选中状态图标图片

仅支持西类牙语的 iOS 应用程序

ios - 在 UIView 子类中实现 UIResponder 触摸方法是否违反了 MVC?

java - 方法不返回 int

iphone - KVC 与快速枚举

ios - Flurry -retransmitNotSentBlocks 崩溃

java - 如何动态调用java方法?