- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
NSUserDefaults *launchSettings=[NSUserDefaults standardUserDefaults]; if([launchSettings boolForKey:(@"hasLaunched")]==NO) { [launchSettings setBool:(YES) forKey:(@"hasLaunched")]; [launchSettings setBool:(NO) forKey:(@"nightShiftOpen")]; }
- (void)viewWillAppear:(BOOL)animated
該方法是頁面即將出現的時候被調用,可放入實時刷新的語句,例以下面的例子是簡易的夜間模式的實現:app
- (void)viewWillAppear:(BOOL)animated { BOOL isOpenNightShift=[_userSettings boolForKey:(@"nightShiftOpen")]; if(isOpenNightShift==YES) { self.tableView.backgroundColor=[UIColor blackColor]; self.navigationController.navigationBar.backgroundColor=[UIColor blackColor]; } else { self.tableView.backgroundColor=[UIColor whiteColor]; self.navigationController.navigationBar.backgroundColor=[UIColor whiteColor]; } }
@property (strong,nonatomic) UISwitch *nightShiftOpen;
if(_nightShiftOpen==nil) { _nightShiftOpen=[[UISwitch alloc]init]; } [_nightShiftOpen addTarget:(self) action:(@selector(nightShiftOpenValueChanged:)) forControlEvents:(UIControlEventValueChanged)];
nightShiftOpenValueChanged:
是綁定的方法的名稱,而UIControlEventValueChanged
是事件的類型,此處類型爲控件值的改變。而後在對應的UIViewController中實現監聽器方法,此處實現的是夜間模式開關的監聽:佈局
- (void)nightShiftOpenValueChanged:(id)sender { if([_nightShiftOpen isOn]==YES) { [_userSettings setBool:(YES) forKey:(@"nightShiftOpen")]; self.tableView.backgroundColor=[UIColor blackColor]; self.navigationController.navigationBar.backgroundColor=[UIColor blackColor]; } else { [_userSettings setBool:(NO) forKey:(@"nightShiftOpen")]; self.tableView.backgroundColor=[UIColor whiteColor]; self.navigationController.navigationBar.backgroundColor=[UIColor whiteColor]; } [_userSettings synchronize]; }