If the app is running and the CLLocationManagerDelegate class is the foreground (i.e. visible) then the didEnterRegions triggers and I get both the NSLog as well as the Aler
Things you are doing wrong:
eg. of a notification:
-(void)triggerLocalNotification:(CLRegion *)region{
UILocalNotification *notification = [[UILocalNotification alloc]init];
[notification setAlertBody:[NSString stringWithFormat:@"Welcome to %@", [region identifier]]];
[notification setRepeatInterval:0];
[notification setFireDate:[NSDate dateWithTimeIntervalSinceNow:2]];
[notification setTimeZone:[NSTimeZone defaultTimeZone]];
[[UIApplication sharedApplication]scheduleLocalNotification:notification];
NSLog(@"notification triggered with notification %@", notification);
}