J'essaie de faire mon application N'oubliez pas l'onglet que l'onglet a été visualisé avant que l'application quitte, de sorte que l'application s'ouvre sur le même onglet lors de son lancement suivant. Ceci est la fonctionnalité de la fonction de téléphone de l'iPhone: Comment puis-je faire cela? P>
6 Réponses :
Stockez l'index de l'onglet sélectionné dans les préférences NSUserDefaults à chaque fois que l'utilisateur sélectionne un nouvel onglet. Ensuite, lorsque l'application démarre, chargez cette valeur dans les préférences et sélectionnez manuellement cet onglet. P>
Dans le délégué de l'UITABBAR, écrasez-vous
- (void)applicationDidFinishLaunchingUIApplication *)application { NSUserDefaults *def = [NSUserDefaults standardUserDefaults]; int activeTab = [(NSNumber*)[def objectForKey:@"activeTab"] intValue]; tabBarController.selectedIndex = activeTab; }
@luvieere Je suis désolé mais pouvez-vous élaborer avec un petit autre code s'il vous plaît?
@Luvieere Ooops, vous définissez nsnumber au lieu d'int
@Luvieere Pourquoi pas simplement enregistrer ongbarcontroller.selectedex code> dans
- [UIAPplicationDelegate ApplicationWillterminate:] code>? Cela ne sera-t-il pas toujours appelé avant que l'application se termine?
Voici comment je l'ai fait. Les deux méthodes sont dans l'Appdelerate et TabbarController est une variable d'instance.
- (void)applicationDidEnterBackground:(UIApplication *)application { /* Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. */ //Remember the users last tab selection NSInteger tabIndex = self.tabBarController.selectedIndex; NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; [userDefaults setInteger: tabIndex forKey:@"activeTab"]; if (![userDefaults synchronize]) { NSLog(@"Error Synchronizing NSUserDefaults"); } } - (void)applicationDidBecomeActive:(UIApplication *)application { /* Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. */ //Set the tabBarController to the last visted tab NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; int activeTab = [(NSNumber*)[userDefaults objectForKey:@"activeTab"] intValue]; self.tabBarController.selectedIndex = activeTab; }
I tabbarcontroller sous-classée et:
update strong> objectif C fort> p>
Ce n'est pas uitabbardelegate code>, c'est
uitabbarcontrollerdélégate code>.
Voici la solution Swift 3. Il suffit de définir la classe de votre tabbarcontroller sur En vous souvenir detabbarcontroller code> dans le storyboard
Jetez un coup d'oeil à cette question récente: Stackoverflow.com/Questtions/1619478/...