首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通知在Presentviewcontroller objective-c中不起作用

在Objective-C中,通常使用NSNotificationCenter来实现通知的发送和接收。通知是一种事件机制,允许对象在发生特定事件时向其他对象发送消息。

在PresentViewController中,如果通知不起作用,可能是以下几个原因导致的:

  1. 未正确设置通知的观察者和处理方法:在PresentViewController中,需要确保正确添加观察者来接收通知,并在处理方法中执行相应的操作。可以使用addObserver:selector:name:object:方法来添加观察者,其中selector是处理方法的选择器。
  2. 未正确发送通知:在发送通知之前,需要确保使用postNotificationName:object:userInfo:方法来发送通知,并指定正确的通知名称和相关参数。可以通过传递userInfo字典来携带额外的信息。
  3. 观察者和通知名称不匹配:观察者必须注册与发送通知时相同名称的通知才能接收到通知。确保通知名称在发送和接收端一致。
  4. 观察者对象被释放:如果观察者对象被释放,它将无法接收到通知。确保观察者对象的生命周期与通知发送的时间相匹配。
  5. 通知在主线程发送,但接收者在后台线程处理:通知默认在发送时执行,如果接收者在后台线程处理通知,可能导致通知不起作用。可以考虑在接收通知时切换到主线程处理。

综上所述,要解决通知在PresentViewController中不起作用的问题,需要检查以上可能导致问题的原因,并逐一进行排查。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Objective-C的老板是这样发通知的(Notification)

老板只有一个,而接受通知的有多个部门,老板是通过论坛广播的形式发送的通知。说的高大上一点,通知是一种发送给一个或多个观察着,用来通知程序中发生了某个事件的消息。...Cocoa通知及时遵循的是一种广播的模式。     ​    ​暂且这么类比着,这是根据我个人理解而想出的例子,可能会有不足之处,希望大家批评指正,转载请注明出处。     ​    ​...废话少说,我们如何把上面boss通过论坛发帖的形式来发送通知Objective-C的Notification来实现呢,代码走起     ​    ​1.一个公司得有老板对吧,所以我们要新建一个老板类...人力资源部门收到:%@", bossInfo[@"notification"]); }     @end     ​代码说明:     ​    ​1.注册为观察者相当于各部门要在内部论坛注册并关注老板,关注老板的同时指定当老板发送通知时自己要做些什么事儿...那么通知也是一样的,你需要在dealloc方法移除观察者即可。 ​    上面的总结暂且这么说吧,是根据笔者自己的理解所总结的内容,不免有偏颇之处,欢迎批评指正,转载请注明出处。

98860
  • Objective-C浅谈面向对象

    每种OOP的语言面向对象上或多或少都会有不同的地方,现在在学习OC的面向对象部分,又感觉到OC面向对象的特点。写篇博文总结一下OC的面向对象。...刚接触OC,用OC的便利初始化方法和便利构造器有点蹩脚,不过还可以接受的范围之内,以下的东西可能会对面向对象的特征:抽象,封装,继承等总结的较少一些,主要总结了OC面向对象的特点。...简单的说来,便利构造器是为了简化对象的初始化而生的,之前的博客也说了一嘴:编程是间接的过程,其实使用便利构造器就是间接的过程。程序处处都用到了间接。...OC类是由接口(interface)和实现(implementation)两部分构成的。OC类是通过两个单独的文件定义。....面向对象父类可以声明子类的变量     ​    ​    ​    ​    ​3.

    1K60

    属性“__attribute__”Objective-C的应用

    属性“__attribute__”Objective-C的应用       关于__attribute__,你可能用的不多,但是一定经常见到,系统的Foundation框架,__attribute...这是一种非常强大的机制,实际应用也非常频繁,例如对以一个拥有模块化和路由功能的应用程序,可以通过这种方式来自动化的进行路由注册(无需手动调用),需要注意,constructor与destructor...8. objc_requires_super       这个属性用来修饰Objective-C父类的方法,如果子类进行了重写,重写的方法没有调用父类方法,则会进行编译器提示。...实际编程,很多时候,都是由于子类重写了父类的方法造成不可预知的问题,通过使用这个属性可以有效的对开发者进行提示,例如: ?...11. objc_runtime_name       这是一个很有趣的属性,其可以运行时改变Objective-C类的类名,但是不会影响其行为。

    2.3K20

    React应用实现Web推送通知

    默认情况下,Create-react-app CRA的工作方式是开发人员模式下不存在ServiceWorker,并且任何以前安装的sw都将被虚拟人替换。...默认情况下,http:// localhost:3000 / service-worker.js上将动态生成的虚拟文件提供给dev-mode 。...custom-sw.js'const swUrl =`$ {process.env.PUBLIC_URL} / $ {swFileName}`; 现在让我们创建的一个服务人员的公共文件夹,将听取推事件和显示通知...event.notification.close(); event.waitUntil( clients.openWindow(href) ); }); 现在,您喜欢的浏览器启用启用...首先,添加一个新的depenendecy: yarn add cra-append-sw 之后,我们需要在package.json扩展build-script,在其中添加一个新命令,该命令main进程之后执行

    3.1K30

    AlertManager 报警通知展示监控图表

    之前用 Python 实现了一个非常简陋的 AlertManager 的钉钉接收器,一直想在钉钉的消息通知中将当前报警图表也展示出来,这样显然对用户来说更加友好。...今天换了另外一种方式来实现,直接去绘制渲染报警图表,然后上传到对象存储中保存起来,钉钉中就可以直接展示了,Promoter 就是这个方案的一个实现,支持消息通知展示实时报警图表,效果图如下所示:...目前是将报警数据渲染成图片后上传到 S3 对象存储,所以需要配置一个对象存储(阿里云 OSS 也可以),此外消息通知展示样式支持模板定制,该功能参考自项目 https://github.dev/timonwong....Alerts.Resolved }} {{ range .AtMobiles }}@{{ . }}{{ end }} {{- end }} {{- end }} 部署 默认配置文件如下所示,放置...启动完成后 AlertManager 配置中指定 Webhook 地址即可: route: group_by: ['alertname', 'cluster'] group_wait: 30s

    1.2K71

    List.append() Python 不起作用,该怎么解决?

    Python ,我们通常使用 List.append() 方法向列表末尾添加元素。然而,某些情况下,你可能会遇到 List.append() 方法不起作用的问题。...问题描述虽然 List.append() 方法通常在 Python 运行良好,但在某些情况下,它可能无法正常工作。以下是一些可能导致 List.append() 方法不起作用的情况:1....变量重新赋值 Python ,列表是可变对象,也就是说,它们可以通过引用进行修改。...列表作为函数参数另一个导致 List.append() 方法不起作用的常见情况是将列表作为函数的参数传递。 Python ,函数参数传递是通过对象引用实现的。...结论List.append() 方法 Python 通常是一个方便且常用的方法,用于向列表末尾添加元素。然而,当遇到某些情况时,它可能不起作用

    2.5K20

    【IOS开发基础系列】UIAlertController专题

    Observer模式定义对象间的一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。我们可以构造代码块添加如下的代码片段来实现。     ...接下来,通知观察者(notification observer),我们需要在激活按钮状态前检查“登录”文本框的内容。     ...Objective-C版本: [self presentViewController: alertController animated: YES completion: nil];     swift...假定我们正在监听UIApplicationDidEnterBackgroundNotification通知消息,我们可以observer释放任何显示出来的视图控制器。...3 开发技巧 3.1 常见问题 3.1.1 集成键盘监听后,重复进入页面挂机问题         项目中,由于自定义AlertView中有用到textfield,故AlertView添加了键盘显示隐藏的通知监听

    50730

    iOS 小技能:Method Swizzling (交换方法的IMP)

    不要在load里面取加载对象,因为我们再load调用的时候根本就不确定我们的对象是否已经初始化了,所以不要去做对象的初始化 I Method Swizzling基础 Objective-C的Runtime...的hook方案 实现原理:在运行时改变 selector 消息分发列表的映射,通过交换 selector 来改变函数指针的引用(名字和实现的映射)。...Objective-C调用一个方法,其实是向一个对象发送消息,查找消息的唯一依据是selector的名字。因此我们可以在运行时偷换selector对应的方法实现,达到给方法挂钩的目的。...1.3 Method swizzling的时机 如果使用恰当,Method swizzling 还是很安全的,一个简单安全的方法是,仅在loadswizzle , dispatch_once 完成...这样才能保证子类方法拿到父类的被swizzle的实现。因此+(void)loadswizzle不会出错,就是因为load类方法会默认从父类开始调用。

    1.6K10

    iOS集成极光推送iOS集成极光推送

    工程文件,做如下设置: ?...apsForProduction:isProduction]; } 说明: isProduction 这个参数,当时询问极光工作人员的时候,他们说这个参数是保留参数,不起作用...收到通知消息后,AppDelegate.m跳转到指定界面的方法: UIViewController *vc = [[UIViewController alloc] init]; [self.window.rootViewController...presentViewController:vc animated:YES completion:nil]; 三、关于极光推送收不到后台推送的通知的问题 首先,要了解一下 iOS的开发环境和生产环境。...我的情况是这样,代码里设置的是生产环境,由于公司要求使用 alias 来区分需要推送通知的用户,再使用 xcode 测试的时候,使用极光推送控制台向指定 alias 推送通知极光推送控制台设置 iOS

    2.9K21

    二维码隐患排查的应用:扫码上报,实时通知

    上报后实时通知提醒维修人员处理隐患3. 跟踪隐患整改全流程,后台可一键导出数据进行存档4. 统计隐患处理进度,及时跟进维修情况二、 上报整改具体操作流程1....巡检人员如在隐患排查过程中发现隐患,可扫描隐患排查二维码,填写隐患上报表单,由于制码者已在制码过程于表单设置页面开启了相应的消息提醒功能,因此如有隐患上报,隐患信息便可实时推送至管理组、码负责人、维修组人员等需第一时间看到隐患信息的人员手机上...制码者可在表单设置页面开启添加后续动态功能,开启后维修组人员便可以提交的记录详情页进行协作和沟通,譬如填写整改反馈表单,也可以直接@管理人员对维修结果进行验收。...管理人员可以动态数据汇总查看每条隐患上报整改的全流程,也可导出pdf进行存档;2. 可在动态档案面板查看该二维码的隐患处理进度的统计结果,及时跟进。3....也可前往pc端工作台,动态数据汇总或者表单数据,查看隐患整改的全部数据情况,并支持一键导出所有数据。

    23230

    使用 Unity 来实现 iOS 原生弹框

    第二步 Unity 设置场景 创建新的 Unity 工程,然后保存场景到你的资源文件夹。 为三个弹框创建三个按钮 ? 第三步 创建脚本然后分配所有按钮的引用 创建一个脚本然后给它命名。...我命名为 PopupView.cs ,现在让我们代码添加一个按钮点击的监听事件。 为每一个按钮创建一个方法并且在按钮点击事件添加引用。从 iOS 的对话行为返回一个枚举存储消息的状态。...不要担心现在的代码,你只需要在你的文件拷贝然后粘贴。如果你创建工程和文件时面临着任何问题,那么你可以从博客的底部下载源代码。...Objective-C 文件拷贝到 unity 工程的 Plugins 目录。...如果你创建 xcode 工程或 Objective-C 文件时面临着任何问题,那么你可以从博客的底部下载源代码。

    2K30

    重回iOS应用开发

    还是Swift来作为开发语言,确实是拿不准,毕竟苹果官方教程主推的还是Swift,但通过同iOS开发多年经验的同学交流后发现,使用Objective-C作为开发语言的项目,居然不在少数,同事经验也擅长...Objective-C的偏多,所以就选择Objective-C吧。...重新熟悉ObjectC语法的过程,有几个点之前关注的不多,记录下: 一、Protocol可以用@property形式声明属性,只不过Protocol声明的属性,只有对应的setter/getter...- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion...这些组件框架主要出发点是面对大型应用项目开发时,项目组成员更好的进行协作开发,能遵循固定的代码框架,实现高质量的输出。

    43420

    跟iOS UI的捉迷藏,真的能够获取到self.presentingViewController

    近期,在做一个有趣的实验,研究presentViewController和dismissViewController的对应关系,这里发现了一个有趣的现象,通常情况下,两者配对使用,如果连续两次presentViewController...第二点:如果你present了一系列的控制器,那么系统会把被present出来的控制器放在一个栈,当处在底层的控制器执行dismiss的时候,它之后被present出来的控制器都会被移除,只有栈顶上的控制器会有...也就是说,调用presentViewController:animated:completion:方法时,真正作为跳转的容器并不一定是调用这个方法的view controller,而是取决于modalPresentationStyle...比如你当前的控制器A导航nav,A present B之后,实际上B.presentingViewController指向的是nav而不是A。...会出现一个warning:同时第二个会有很大概率加载失败,那能不能成功呢,虽然这个需求很奇怪,但在复杂逻辑,加入了通知等响应性的内容时,很难保证不出现这样的情况,而一旦第二个无法加载成功,则会开发同学产生很深的困扰

    66620
    领券