Вы можете использовать Центр уведомлений Дарвина и использовать имя события com.apple.springboard.fullycharged .
Таким образом, вы получите уведомление для вашего пользовательского метода, вот фрагмент кода:
// Registering for a specific notification
NSString *notificationName = @"com.apple.springboard.fullycharged";
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),
NULL,
yourCustomMethod,
(__bridge CFStringRef)notificationName,
NULL,
CFNotificationSuspensionBehaviorDeliverImmediately);
// The custom method that will receive the notification
static void yourCustomMethod(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo)
{
NSString *nameOfNotification = (__bridge NSString*)name;
if([nameOfNotification isEqualToString:notificationName])
{
// Do whatever you want...
}
}