objective-c - 如何从不同的 View Controller 以不同的方式响应 applicationWillResignActive

标签 objective-c ios

当我的应用程序被中断时,例如接听电话、屏幕锁定或切换应用程序,我需要它根据中断时屏幕上的 View / View Controller 做出不同的响应。

在我的第一个 View Controller 中,我们称之为 VCA,我有这个

              [[NSNotificationCenter defaultCenter]
 addObserver:self
 selector:@selector(doSomething)
 name:UIApplicationWillResignActiveNotification 
 object:NULL];

    -(void)doSomething{
    //code here
    };

在VCB我有

    [[NSNotificationCenter defaultCenter]
 addObserver:self
 selector:@selector(doSomethingElse)
 name:UIApplicationWillResignActiveNotification 
 object:NULL];

    -(void)doSomethingElse{ //code here };

但是如果 VCB 在屏幕上,或者任何后续的 View Controller (vcc、vcd、vce),并且屏幕被锁定,它只会响应 VCA 中定义的 doSomething 方法。即使我在 VCA 之后的 View Controller 之一中没有 UIApplicationWillResignActiveNotification,它仍然会响应 VCA 中定义的 doSomethign 方法。

有什么方法可以让我的应用程序在进入后台时根据屏幕上的哪个 View 做出不同的响应?

最佳答案

这在 applicationDidEnterBackground 中对我有用

if ([navigationViewController.visibleViewController isKindOfClass:[YourClass class]]) {
    //your code
}

关于objective-c - 如何从不同的 View Controller 以不同的方式响应 applicationWillResignActive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11006956/

相关文章:

objective-c - NSMutableArray addObject 不添加对象,并且对象已分配

objective-c - UIView 动画未在值更改事件上设置动画

ios - 如何以编程方式设置设备(UI)方向?

iphone - 将 .net 日期时间字符串解析为 Objective C 中的 NSDate 对象

iOS:将文件从 Office 应用复制到我的应用的文档

objective-c - 获取 UIManagedDocument 的 URL

ios - CABasicAnimation 代替 UIView 动画

ios - 使用应用委托(delegate)启动 iOS 应用

ios - 无法使用 swift 4.1 创建自定义框架

ios - 有什么方法可以使 UISegmentedControl 中的段宽度与内容成正比?