`
zcw_java
  • 浏览: 304310 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

NotifiCationCenter控制使用

 
阅读更多
NSNotificationCenter


第一种,这个只是传值,通过NSNotification获取,当然也可以直接使用obj

注册A
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(enableOrDisableAudio:) name:@"enableOrDisableAudio" object:nil];
- (void)enableOrDisableAudio:(NSNotification *)notification
{
    printf("enableOrDisableAudio\n");
    BOOL bIsEnableAudio = [[notification object] boolValue];
    self.m_bIsEnable = bIsEnableAudio;
    
    [self enableAudio:bIsEnableAudio];
}

响应B
NSNumber *boolNum = [NSNumber numberWithBool:m_bIsSPKOn];
    [[NSNotificationCenter defaultCenter] postNotificationName:@"enableOrDisableAudio" object:boolNum];


第二种多值传输(obj)
注册A
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object: nil];

- (void)reachabilityChanged:(NSNotification *)note
{
	Reachability *curRech = [note object];
	NetworkStatus status = [curRech currentReachabilityStatus];
    
	if (status == NotReachable)
	{
        [self setStatusBarToShow];
        [SVStatusHUD showWithMessage:Localized(@"disconnect from network") duration:KShortDuration];
	}
	else
    {
        [self resetStatusBarBlank];
    }
    
}

响应B
Reachability* noteObject = (Reachability*) info;
	// Post a notification to notify the client that the network reachability changed.
	[[NSNotificationCenter defaultCenter] postNotificationName: kReachabilityChangedNotification object: noteObject];


数组传输,注意响应消息的userInfo一定是NSDictionary类型
- (void) keyboardWillShow:(NSNotification *)aNotification
{
        NSDictionary *userInfo = [aNotification userInfo];
}
分享到:
评论

相关推荐

    ios NotificationCenter

    在实际项目中,合理使用`NotificationCenter`能提高代码的灵活性和模块化。然而,过度使用或者不恰当的使用可能会导致逻辑混乱,因此在设计系统时需要谨慎考虑何时使用它,以及如何设计清晰的通知名称和数据结构。 ...

    4_NotificationCenter

    `NotificationCenter`还支持将通知分发到特定的队列,这使得开发者可以控制通知处理的线程安全性和同步性。默认情况下,通知会在主线程上分发,确保UI更新的正确性。 在实际应用中,`NotificationCenter`常用于各种...

    iOS中的控制详解案例

    在iOS开发中,控制器是构建用户界面的核心组件。它们负责协调模型(数据)和视图(用户看到的界面)之间的交互。在这个“iOS中的控制详解案例”中,我们...在实践中不断磨练,才能更好地理解和掌握iOS中的控制器使用。

    视图控制器(动画版).zipIOS应用例子源码下载

    - 可以使用`NotificationCenter`监听特定事件并触发动画。 - 对于页面间的过渡动画,可以自定义`UIStoryboardSegue`或使用`UINavigationController`的`animationControllerForOperation:fromViewController:...

    实现后台音乐播放可控制播放暂停循环播放

    在锁屏状态下控制音乐,可以使用`MPNowPlayingInfoCenter`来更新当前播放信息,这样用户在锁屏界面就可以看到音乐的相关信息,并通过控制中心进行操作: ```swift let nowPlayingInfo: [String: Any] = [ ...

    swift-一个NSViewController子类它可以以画中画模式呈现其子视图控制器

    这可以通过使用`NotificationCenter`订阅相关的通知来实现,比如`NSApplicationDidResignActiveNotification` 和 `NSApplicationDidBecomeActiveNotification`。 ```swift NotificationCenter.default.addObserver...

    Swift Notification通知

    - Swift 5.2并没有对`NotificationCenter`做重大改动,但随着语言的演进,它的使用可能变得更加简洁和高效。比如,利用Swift的类型安全特性,可以更好地管理通知名。 通过理解并熟练运用Swift Notification通知,...

    视频播放器,支持边下边播、预加载、全屏转场和自定义控制层.zip

    例如,使用UIButton创建交互式控件,UISlider实现进度控制,而UILabel则可用于显示时间信息。同时,利用NotificationCenter和KVO(Key-Value Observing)可以监听和响应用户操作。 在实际项目中,开发者可能还需要...

    ios-controller 的简单使用案列.zip

    10. **KVO(Key-Value Observing)或NotificationCenter**: 为了在数据模型发生变化时自动更新视图,开发者可以使用KVO或NotificationCenter来监听和传递消息。在这个案例中,当新数据加载完成后,可能会使用这些...

    Swift开源项目视频播放器,支持边下边播、预加载、全屏转场和自定义控制层.zip

    同时,项目可能结合了NotificationCenter或Delegate方法来监听播放状态变化,以便实时更新控制层的显示。 除此之外,项目可能还涉及到了线程管理,以确保视频加载和播放过程不会阻塞主线程,从而保证用户界面的响应...

    数据的顺序和反向传递

    4. **Notification Center**: 使用NotificationCenter可以广播一个通知,任何监听这个通知的视图控制器都可以接收到数据。这种方法适用于视图控制器层次复杂、关联关系不明确的情况。 在实际项目中,开发者通常会...

    NptificationDemo

    在iOS开发中,`...通过`NotificationDemo`这个项目,你可以实际操作并理解这些概念,进一步掌握`NotificationCenter`在iOS应用中的使用。通过实践,你会发现它是实现解耦、模块化设计的一种有效手段。

    StoryboardsPassValueTest Demo代码

    使用Notification Center,源视图控制器可以发布一个通知,目标视图控制器监听并响应这个通知,从而获取数据。这种方法适用于不直接相关的视图控制器间的通信。 9. **Model对象**: 创建一个公共的Model对象,两...

    消息中心应用实例

    在iOS开发中,消息中心(NotificationCenter)是一种非常重要的通信机制,它允许对象之间进行解耦的通信。在“消息中心应用实例”中,我们将探讨如何利用消息中心来实现在不同视图之间的平滑切换,从而简化视图间的...

    iOS中tabbar的嵌套使用

    - **数据传递**:在多个`TabBarItem`之间共享数据,可以使用`AppDelegate`、单例模式、`NSUserDefault`、`NotificationCenter`等方法。 总结来说,嵌套`TabBar`是iOS应用设计中的高级技巧,能够为用户提供更丰富的...

    Swift5.2 通知.zip

    可以使用 `NotificationCenter.default.addObserver(forName:object:queue:using:)` 方法。`forName` 参数是你想要监听的通知名称,`object` 参数是发送通知的对象(可选),`queue` 参数指定处理通知回调的线程,`...

    Swift-有tabbarDemol

    - 观察者模式:通过KVO(Key-Value Observing)或者Swift的`NotificationCenter`来监听`tabBarController.selectedIndex`的改变。 6. **嵌入NavigationController** 往往我们会在每个TabBar项的视图控制器前加入...

    单例模式的简单使用

    此外,`UserDefaults`、`NotificationCenter`和`FileManager`等系统服务也是通过单例来提供的。 单例模式的实现通常有两种方式:GCD(Grand Central Dispatch)和懒加载。GCD利用了队列的串行性,保证了单例的线程...

    通知传值demo

    - 在iOS开发中,通常使用`NotificationCenter.default`来获取默认的通知中心实例。 2. **通知的类型** - 本地通知(Local Notification):由应用程序本身创建并触发,即使应用程序不在前台运行也能发送。 - ...

    pathValueDemo.zip

    使用代理设计模式,定义一个协议,让源控制器作为目标控制器的代理。通过实现协议的方法,源控制器可以在适当的时候传递数据。这种方式灵活性高,但需要遵循额外的编程约定。 4. **通知中心(NotificationCenter)...

Global site tag (gtag.js) - Google Analytics