问题标签 [addobserver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - AddObserver 用于带有标签栏控制器的设备方向
我有 5 个标签栏,所有标签栏都带有导航控制器,除了第 3 个标签栏,有一个自定义视图使其与导航控制器栏相同。自定义内部有文本字段和按钮。所以我试图对其他带有导航栏的标签栏做出同样的行为。然后,我链接了文本字段和按钮的高度和顶部约束,以便它能够根据设备方向进行更改。
所以我尝试在 viewWillAppear 中使用 NotificationCenter.default.addObserver(self, selector: #selector(rotated), name: NSNotification.Name.UIApplicationDidChangeStatusBarOrientation , object: nil),它像往常一样工作。但是,如果我在第一个选项卡上开始更改为横向模式。然后我改为第三个选项卡,自定义视图根本没有改变。
另一种方法:NotificationCenter.default.addObserver(self, selector: #selector(rotated), name: NSNotification.Name.UIApplicationDidChangeStatusBarOrientation , object: nil) 在标签栏didSelect,它仍然是上面所说的同样的问题,它没有当您进入横向模式以将选项卡从第一个更改为第三个时工作,自定义视图仍然根本没有改变。但是当您将方向更改为纵向然后再次横向时它正在工作。
我可以知道如何解决这个问题吗?
swift - Swift 4 - 通知中心 addObserver 问题
unrecognized selector
每次 aNotification
到达并且应用程序尝试执行其关联方法时,我都会崩溃并收到错误。这是我的代码-位于viewDidLoad
:
该sayHello()
方法非常简单——看起来像这样:
我已验证已Notification
成功发布并且已成功到达- 所以这不是问题。当应用程序Notification
通过执行该方法来执行该sayHello()
方法时,就会发生崩溃。它一直给我这个unrecognized selector
错误。
任何想法我做错了什么?(顺便说一句,这与 Swift 3 和 Xcode 8 完美配合,但现在使用 Swift 4 和 Xcode 9,语法发生了变化 [Xcode 引导我完成了必要的代码修复/更新] - 但崩溃仍在发生。)
ios - 如何限制 NSNotification 在 iOS 中多次调用方法?
我NSNotificationCenter
用来在我的代码中发送本地通知并在 Objective-C 和 Swift 中工作。我正在从 Objective-C 发布通知并在 Swift 中接收。但是我在通知中添加的方法被多次调用并且仅在viewDidLoad
方法中添加了观察者。
迅速:
目标-C:
我在我的中添加了删除观察者,deinit
但它甚至没有调用。如何停止多次调用。
uitextfield - 将观察者添加到 UITextfield。从不开火?
斯威夫特 4.0 iOS 11.x
添加了一些 UITextfields,成为第一响应者,而不是这些观察者。但他们似乎从不开火?我在这里想念什么?
当我在 nameTextField 或 hintTextField 中输入文本时,控制台不会打印任何内容。尝试使该类成为 UITextFieldDelegate,并确实设置了文本字段委托,但仍然没有通知向我发送?
ios - NotificationCenter.default.addObserver 不断被 Unwind Segue 调用多次
我正在使用 show segue 和 unwind segue 在两个iOS
视图控制器 VC1 和 VC2 之间导航。在viewDidLoad()
VC2 中,我让 VC2 成为观察者。这是我的代码:
每次我使用 unwind segue 从 VC2 回到 VC1时,addObserver()
都会调用一次额外的时间,例如,在第四次返回时segue
addObserver 被调用 4 次;在第五次segue
、五次等。即使应用程序被发送到后台并被调用,也会发生这种行为。它会记住在上一个会话中发生了多少次 segue,并从那里获取计数。
我在 VC1 中多次调用没有问题,这是初始 VC。
我试图在展开 segueing 后将 VC2 设置为 nil。
期待任何指导。
ios - iOS NotificationCenter 意外保留关闭
在文档中,它说:
该块由通知中心复制并保留(副本)直到观察者注册被删除。
它提供了一个一次性观察者示例代码,如下所示:
现在我希望观察者被删除removeObserver(_:)
,所以我的代码是这样的:
令人惊讶的是,它self
被保留并没有被删除。
到底是怎么回事?
ios - NSNotification.Name.NSExtensionHostWillEnterForeground 不起作用
我可以在 Xcode 11.1 的最新版本中使用 NSNotification。从后台返回应用程序后,我可以尝试使用我的函数refreshFields()更新字段值。我的代码编译成功,但函数applicationWillEnterForeground()从不调用。错误在哪里?
kotlin - 从 Kotlin 抽象类调用生命周期.addObserver
我有一个实现DefaultLifecycleObserver
. 我想lifecycle.addObserver(this)
从init
块中调用,但它说"Leaking 'this' in constructor of non-final class MyAbstractClass"。
我的代码:
我可以把这行代码移到每个扩展这个抽象类的final类的init块中,但是我不喜欢这个想法,特别是因为我想保证将来每个扩展MyAbstractClass的新类都会调用它也是。有没有更好的地方可以在不造成泄漏的情况下调用它?
swift - 添加观察者时未输入选择器功能
在我的第一个视图控制器中,我使用以下代码发布通知:
然后,我使用以下代码在第二个视图控制器中“接收”通知:
但是,函数“didGetTheDate”永远不会被调用。我已经三次检查了函数“receiveNotification”是否被调用,因为我添加了打印语句来检查这一点。
有人可以帮我解决这个问题。
swift - 如何快速将参数传递给选择器?
当我调用 addObserver 函数时,我想将 scrollView 传递给 objc 函数 getScrollView。我应该如何修改这两个功能?