¿Cómo cambiar el idioma de la aplicación del iPhone durante el tiempo de ejecución?

¿Hay alguna manera de cambiar el idioma de la aplicación durante el tiempo de ejecución?

Así que, después del cambio.NSLocalizedString Inmediatamente devuelve la cadena para el nuevo idioma.

Lo que estoy haciendo ahora es cambiar el idioma usando el siguiente código:

- (void)onChangeLanguage: (id)sender 
{
    NSArray *lang = [NSArray arrayWithObjects:((InfoWhatever *)sender).language, nil];
    [[NSUserDefaults standardUserDefaults] setObject:lang forKey:@"AppleLanguages"];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
    NSString *currentLanguage = [languages objectAtIndex:0];

    NSLog(@"Current language: %@", currentLanguage);
}

El idioma cambiará perosolo después de reiniciar la aplicación.

Respuestas a la pregunta(3)

Su respuesta a la pregunta