夜间模式

夜间模式:利用继承与 NSUserDefaults
1.创建基类,负责夜间模式的转换
2.所有的类都继承于基类,基类的模式改变了,所有子类的模式也改变了
3.夜间模式触发的按钮发送通知
4.利用 NSUserDefault把模式保存到本地
/************* 基类 .h***************/
#import "BaseViewController.h"

@interface BaseViewController ()

@end

@implementation BaseViewController

- (
void )viewDidLoad {
    [
super viewDidLoad ];
   
// Do any additional setup after loading the view.
   
   
   
// 父亲默认颜色
   
self . view . backgroundColor = [ UIColor redColor ];
   
self . navigationController . navigationBar . barTintColor = [ UIColor greenColor ];
   
   
   
// 注册通知
    [[
NSNotificationCenter defaultCenter ] addObserver : self selector : @selector (changeColor:) name : @"changeColor" object : nil ];
   
   
// 判断模式
   
NSString *str = [[ NSUserDefaults standardUserDefaults ] objectForKey : @"night" ];
   
if ([str isEqualToString : @"yes" ]) {
       
self . view . backgroundColor = [ UIColor lightGrayColor ];
       
self . navigationController . navigationBar . barTintColor = [ UIColor blackColor ];
    }
}
// 接受通知触发的方法
-(
void )changeColor:( NSNotification *)notification
{
   
   
NSString *str = [[ NSUserDefaults standardUserDefaults ] objectForKey : @"night" ];
   
if ([str isEqualToString : @"yes" ]) {
       
self . view . backgroundColor = [ UIColor lightGrayColor ];
       
self . navigationController . navigationBar . barTintColor = [ UIColor blackColor ];
    }
else
    {
       
self . view . backgroundColor = [ UIColor redColor ];
       
self . navigationController . navigationBar . barTintColor = [ UIColor greenColor ];
    }

   
}
- (
void )didReceiveMemoryWarning {
    [
super didReceiveMemoryWarning ];
   
// Dispose of any resources that can be recreated.
}
@end
/************* 基类 .h***************/

/*************夜间模式触发的按钮 ***************/
  UIButton *button = [ UIButton buttonWithType : UIButtonTypeCustom ];
    [
self . view addSubview :button];
    button.
frame = CGRectMake ( 100 , 100 , 200 , 40 );
    button.
backgroundColor = [ UIColor blackColor ];
   
    [button
addTarget : self action : @selector (buttonAction) forControlEvents : UIControlEventTouchUpInside ];

   
}
-(
void )buttonAction
{
   
NSString *str = [[ NSUserDefaults standardUserDefaults ] objectForKey : @"night" ];
   
if ([str isEqualToString : @"yes" ]) {
        [[
NSUserDefaults standardUserDefaults ] setObject : @"no" forKey : @"night" ];
       
        [[
NSNotificationCenter defaultCenter ] postNotificationName : @"changeColor" object : @"no" ];
    }
else
    {
        [[
NSUserDefaults standardUserDefaults ] setObject : @"yes" forKey : @"night" ];
       
        [[
NSNotificationCenter defaultCenter ] postNotificationName : @"changeColor" object : @"yes" ];
    }

   
}
/*************夜间模式触发的按钮 ***************/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值