Activar notificación local basada en tiempo en segundo plano

Así que tengo una aplicación que incluye intervalos de repetición de notificaciones locales y me gustaría agregar una función que pausará las notificaciones durante el tiempo de suspensión.

Hasta ahora, he creado dos selectores de fechas para que el usuario especifique a qué hora les gustaría detener el intervalo de repetición y a qué hora se reiniciará automáticamente. Y agregué un interruptor uis para que activen el modo de suspensión o ignoren la función.

Ahora, ¿cómo puedo hacer que mi uipickerview principal (que eligen desde allí desde la notificación) - para escuchar al uiswitch si está activado, luego haga una pausa en las notificaciones en el momento que sale de mi primer selector de fechas y vuelva a publicar las notificaciones en el ¿El tiempo que viene del segundo datepicker?

Ya he configurado mis selectores de fechas y mi uiswitch, pero no tengo idea de cómo implementarlos con mi uipickerview. ¿Debería estar bajo el método de DidSelectRow? ¿O un método en appdelegate (como DidEnterBackground)?

Por favor, pregunta si necesitas más información o códigos para entender la idea y ayudarme. Gracias.

AÑADIR:

Aquí está mi código que preparé para el selector de fechas, sin embargo, solo me falta la conexión para agregarlo correctamente a mi vista de selector.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
dateFormatter.timeZone=[NSTimeZone defaultTimeZone];
dateFormatter.timeStyle=NSDateFormatterShortStyle;
dateFormatter.dateStyle=NSDateFormatterShortStyle;
NSString *dateTimeString=[dateFormatter stringFromDate:startTime.date];
NSLog(@"Start time is %@",dateTimeString);


NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc]init];
dateFormatter2.timeZone=[NSTimeZone defaultTimeZone];
dateFormatter2.timeStyle=NSDateFormatterShortStyle;
dateFormatter2.dateStyle=NSDateFormatterShortStyle;
NSString *dateTimeString2=[dateFormatter2 stringFromDate:endTime.date];
NSLog(@"End time is %@",dateTimeString2);

También tengo este código para comparar entre los tiempos:

if ([[NSDate date] isEqualToDate:startTime.date]) {
NSLog(@"currentDate is equal to startTime"); 
}

if ([[NSDate date] isEqualToDate:endTime.date]) {
NSLog(@"currentDate is equal to endTime"); 
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta