你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS的settings bundle中開關按鈕(Toggle Switch)取不到值的問題

iOS的settings bundle中開關按鈕(Toggle Switch)取不到值的問題

編輯:IOS開發綜合

在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!!!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved