How to change app language programmatically WITHOUT restarting my app?

3 Solutions Collect From Internet About “How to change app language programmatically WITHOUT restarting my app?”

You can’t do that (without jailbreaking). You should code your app in a way, that you can start over when some significant information changes, without restarting the app. For instance you could pop all the view controllers and deallocate them and then let the user reload them using the correct language.

Note however, that normally you shouldn’t do anything like that. Localization is solved in a quite elegant way on iOS. You just localize the .strings (and optionally .nib and image files) and the system takes care for the rest for you. When the user changes the language in the Settings app, you app will be terminated by the system. The next time the user starts the app, it will load the correct language.

It’s not possible,

Though there is one trick

1> From your application Open safari Browser with custom URL (e.g. com.yourcompany.yourApp)

2> register that Custom URL with your app(from plist file you can do that), which will open your application from safari when that custom url open in safari.

3> turn off your “Application should run in background” from your .plist file. (you can achieve this by adding the UIApplicationExitsOnSuspend key to your application’s Info.plist file and setting its value to YES.)

Why restart the application?I think it is not possible.But you can do whatever to change in the applicationDidBecomeActive or applicationWillEnterForeground Method

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
}