2010-05-21 4 views
0

J'ai une langue bascule dans mon application et il serait vraiment facile à gérer si, lorsque l'utilisateur change de langue, je pourrais présenter un indicateur d'activité et réinitialiser toutes les vues de l'application avec la nouvelle langue par défaut. Tri de la façon dont les paramètres de l'iPhone gèrent les changements de langue. Y a-t-il un moyen facile de faire ceci?Réinitialiser une application par programme?

Répondre

2

Avez-vous une vue de niveau supérieur, quelque chose comme un UITabBarController ou un UINavigationController? Si c'est le cas, vous pouvez essayer de le supprimer de sa superview (qui devrait être votre UIWindow) et d'en créer un nouveau.

Par exemple, dans mon délégué app je:

// Add the tab bar controller's current view as a subview of the window 
[window addSubview:self.tabBarController.view]; 
[window makeKeyAndVisible]; 

Pour rétablir cela, vous pouvez essayer, dans votre délégué app:

[self.tabBarController.view removeFromSuperView]; 
self.tabBarController = //create a new tab bar controller 
[window addSubview:self.tabBarController.view]; 

Peut-être qu'il ya une meilleure façon, mais serait probablement ma première approche.

+0

Cela a vraiment aidé. Cela m'a forcé à réorganiser la façon dont j'avais organisé le cycle de vie de l'application. Beaucoup plus de code logique. Merci! –

Questions connexes