所以,大家好,我一直在努力,最後一週纔得到這個工作。UISwitch狀態viewdidload
我有一個應用程序,我需要一個UISwitch打開本地通知。
開關狀態的標準是關閉的,但是當警報開啓時,我需要在加載時更改此設置。 我試過scheduledLocalNotification,我試過一個BOOL,我試圖設置int isOn,當它打開時爲0,當它關閉時,沒有任何東西似乎爲我工作。
的循環,如果我用的是在viewDidLoad中,看起來像這樣:
if (isAlarmOn == 1) {
NSLog(@"You have notifications");
[setAlarm setOn:YES];
}
else{
NSLog(@"You have no notifications");
[setAlarm setOn:NO];
}
無論我嘗試使用哪種策略,我似乎並沒有工作,希望我能得到你的球員一些幫助。
更多的代碼:
我setAlarm代碼
- (IBAction)setAlarm:(id)sender {
NSArray *notificationArray=[[UIApplication sharedApplication] scheduledLocalNotifications];
if (setAlarm.on) {
[alarmStatus setText:@"Alarmen er tændt"];
//Metode til at undersøge om klokken før eller efter officiel solned
NSTimeInterval checkTime = [[astronomicalCalendar sunset] timeIntervalSinceDate:[NSDate date]];
NSLog(@"Alarmen er tændt");
if (checkTime >= 0) {
[self scheduleNotificationToday];
}
else{
[self scheduleNotificationTomorrow];
}
NSLog(@"antal alamer %@", notificationArray);
isAlarmOn = 1;
}
else {
//Metode til at slette alle notifikationer
[[UIApplication sharedApplication] cancelAllLocalNotifications];
NSLog(@"Alarmen er slukket");
NSLog(@"antal alamer %@", notificationArray);
isAlarmOn = 0;
}
}
我UILocalNotification代碼
- (void)scheduleNotificationToday {
Class cls = NSClassFromString(@"UILocalNotification");
if (cls != nil) {
//Just some stuff determine which time to alert on.
UILocalNotification *notif = [[cls
alloc] init];
notif.fireDate = [gregorian dateByAddingComponents:traekFraDag toDate:[astronomicalCalendar sunset] options:0];
notif.timeZone = [NSTimeZone defaultTimeZone];
notif.alertBody = @"Nu går solen snart ned";
notif.alertAction = @"Show me";
notif.soundName = @"Waterline.caf";
notif.applicationIconBadgeNumber = 1;
[[UIApplication sharedApplication] scheduleLocalNotification:notif];
}
}
請告訴我,如果有你的代碼會的任何其他部分喜歡看
就像測試一樣,將「if(isAlarmOn == 1)」更改爲「if 2> 1」。這將幫助你隔離錯誤。 – melsam 2013-02-27 20:57:59
我不知道從問題什麼是不工作。換句話說,如果你只是說[setAlarm setOn:YES],你可以在viewDidLoad中以編程方式改變你的UISwitch的狀態;並刪除其他的東西?這是收到通知的問題還是什麼? – Fraggle 2013-02-27 21:00:40
我試圖測試2> 1,我能夠以編程方式設置開關。我確實收到了通知,它可以與我的交換機一起工作,但每次應用程序從內存中卸載時,uiswitch都會顯示默認狀態(關閉)。雖然通知仍然有效,所以這只是一個外觀問題。 – 4FunAndProfit 2013-02-27 21:27:01