夜间模式的设置用开关,或者是一个变化的量:缓存变化值,然后:(1) 是给正在存在的控制视图发通知改变其实夜间模式,(因为存在的视图不会重新创建)(2)是没创建的视图中创建的时候去缓存的值
例子
//给改夜间模式的事件
//缓存然后发通知
[[NSUserDefaultsstandardUserDefaults] setBool:s.onforKey:USERDEFAULT_SETTING_OPEN_NIGTH_MODE];
[[NSUserDefaultsstandardUserDefaults] synchronize];
[[NSNotificationCenterdefaultCenter] postNotificationName:kNotificationNigthModeChangedobject:nil];
- (void)addNightModeChangedNotification
{
[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(nightModeChanged:) name:kNotificationNigthModeChangedobject:nil];
}
- (void)nightModeChanged:(NSNotification *)noti
{
//夜间模式变动时调用
[selfrefreshViewMode];
}
- (void)refreshViewMode//init在得写一遍
{
IS_NIGHTMODE;
if (IS_NIGHTMODE) //IS_NIGHTMODE是缓存取出来的[[NSUserDefaults standardUserDefaults] boolForKey:USERDEFAULT_SETTING_OPEN_NIGTH_MODE]
{
[self.tableView reloadData];
}
else
{
[self.tableView reloadData];
}
}
- (id)init
{
if(self = [super init])
{
[self refreshViewMode];
}
return;
}