我的主应用程序中有UIApplicationDelegate协议.m类,定义了applicationDidBecomeActive方法.

我想在应用程序从后台返回时调用一个方法,但该方法位于另一个视图控制器中.如何判断applicationDidBecomeActive方法中当前显示的视图控制器,然后调用该控制器中的方法?

推荐答案

应用程序中的任何类都可以成为应用程序中不同通知的"观察者".在创建(或加载)视图控制器时,您需要将其注册为UIApplicationDidBecomeActiveNotification的观察者,并指定当通知发送到应用程序时要调用的方法.

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(someMethod:)
                                             name:UIApplicationDidBecomeActiveNotification object:nil];

别忘了自己收拾一下!请记住,当您的视图即将消失时,要删除您自己的观察者身份:

[[NSNotificationCenter defaultCenter] removeObserver:self 
                                                name:UIApplicationDidBecomeActiveNotification
                                              object:nil];

更多关于Notification Center人的信息.

Ios相关问答推荐

自定义组件中的通用型-无法访问特定于收件箱的属性

如何调整包含extView的UICollectionViewListCell的大小?

为什么EKEventStore().questFullAccessToEvents()可以与模拟器一起使用,而不能与真实设备一起使用?

当任何 TextEditor 有多于一行时,所有 TextEditor 都会调整大小

Flutter iOS 构建失败:DVTCoreDeviceEnabledState_Disabled

拔下设备后,DriverKit USB 驱动程序 (dext) 进程不会终止

Swift/iOS:泛型错误:协议需要嵌套类型V;你想添加它吗?

SwiftUI 解除 .alert 弹出 NavigationView

在 SwiftUI 中将 TextEditor 文本计数连接到 ProgressView

在 tableview 中下载图像缩略图时如何提高滚动性能

iOS 8 - 使用自定义演示关闭视图控制器后屏幕空白

iOS:应用程序在安装应用程序时未征求用户许可.每次都获得 kCLAuthorizationStatusNotDetermined - Objective-c & Swift

SwiftUI 视图 - viewDidLoad()?

无论我将构建版本或应用程序版本更改为什么,都会出现 ITEMS-4238冗余二进制上传错误

UIView 和 initWithFrame 以及一个 NIB 文件.如何加载 NIB 文件?

标题为 UIImage 的导航栏

Swift中类的初始化类方法?

如何获取 iTunes 连接团队 ID 和团队名称?

如何在 iOS 中获取正在运行的应用程序的名称

两个数字之间的动画UILabel文本?