iOS的settings bundle中开关按钮(Toggle Switch)取不到值的问题
2016-02-25 12:16
621 查看
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)
在Xcode7.2中设置App的settings bundle时发现当bundle元素类型为Toggle Switch时,在App里取不到其变化值.
其中Toggle Switch设置如下:
在代码中以如下方式读取其值:
BOOL isWarp = [defaults boolForKey:kWarpDrive]; _warpDriveLabel.text = isWarp ? @"Engaged":@"Disabled";
其中kWarpDrive定义如下:
#define kWarpDrive @"warp"
奇怪的是在settings中改变该开关按钮的状态,并不能在App中反应出来…确切的说,App中无论开关处在何种状态,总是读出NO值.
该App的settings bundle还有其他类型的元素,比如文本或多选栏,其他的元素都可以正常读出改变的值,唯独Toggle Switch不可以.
遂改变策略在,App启动时先注册其对应的值:
+(void)regDefaultsFromSettingsBundle{ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSDictionary *dict = @{kWarpDrive:@(YES)}; [defaults registerDefaults:dict]; [defaults synchronize]; }
注意我只注册了kWarpDrive对应的值,其他的值并没有管.
然后在App中可以正常读出开关改变的值了,That’s All!!!
相关文章推荐
- iOS的settings bundle中开关按钮(Toggle Switch)取不到值的问题
- iOS常用网址
- iOS_Blocks
- 转:iOS开发多线程篇—GCD介绍
- iOS绘图教程
- iOS开发里的线程安全机制
- iOS学习之移除Main.storyboard
- iOS9适配注意点(转)
- IOS内存管理retain,assign,copy,strong,weak
- IOS 关键字self,super,copy, retain, assign , readonly , readwrite, nonatomic、@synthesize、@property、@dynamic
- iOS 统计打点
- ios tableViewcell 的自适应高度
- ios 判断电话号码
- iOS获取设备信息与应用信息
- iOS block教程
- iOS分组通讯录效果+侧滑菜单(MMDrawerController)
- iOS 开启个人热点后屏幕的适配问题
- nagios
- IOS异步获取数据并刷新界面dispatch_async的使用方法
- iOS 提交错误