J'ai été si GARANTIE dernièrement que j'ai pensé que je devrais prendre une courte pause de l'écriture Plus l'iPhone 3 de développement de mettre en place quelque chose de technique. Ceci est relativement débutant-niveau tutoriel, mais c'est une de ces petites fonctionnalités que nous prenons pour acquis, mais déteste vraiment quand il n'y est pas (du moins je le fais).
Je parle d'économie de l'onglet sélectionné. Lorsque vous démarrez l'application Horloge Apple, par exemple, il faut toujours vous à l'onglet que vous étiez lorsque vous dernière utilisation. Dans la plupart des cas, c'est une très bonne idée. Il peut y avoir des cas où un onglet spécifique doit avoir la priorité, mais généralement, vous devez apporter à l'utilisateur là où ils l'avaient laissé.
Si vous utilisez un contrôleur de barre d'onglets, il est relativement simple à mettre en œuvre. En viewDidLoad ou applicationDidFinishLaunching:, vous devez faire quelque chose comme ceci:
Ensuite, soit lorsque la sélection change, ou lorsque l'application se ferme, vous avez à stocker hors de l'onglet dans les préférences de sorte qu'il sera là la prochaine fois. Je préfère le faire à chaque changement de sélection des onglets, car alors nous avons capturé, même s'il ya un crash ou un appel téléphonique, mais le faire lorsque l'application se termine est très bien pour la plupart des buts. Voici comment vous inverser le processus:
Mais que faire si vous êtes juste en utilisant un UITabBar et non pas un UITabBarController? C'est un contact plus difficile parce que les bars onglet ne fonctionnent pas par les indices. Il est relativement facile d'ajouter exactement la même fonctionnalité que sur le contrôleur barre d'onglets à la barre d'onglets en utilisant une catégorie, cependant:
UITabBar-Index.h
UITabBar-Index.m
Une fois que vous avez cela, vous pouvez importer cette catégorie et à utiliser exactement le même code d'en haut sur la barre d'onglets plutôt que le contrôleur barre d'onglets.
Voici un exemple de projet. Il comprend une application de barre d'onglet qui permet d'économiser le fonctionnement de la position de la tabulation, et contient également de la catégorie ci-dessus.
Je parle d'économie de l'onglet sélectionné. Lorsque vous démarrez l'application Horloge Apple, par exemple, il faut toujours vous à l'onglet que vous étiez lorsque vous dernière utilisation. Dans la plupart des cas, c'est une très bonne idée. Il peut y avoir des cas où un onglet spécifique doit avoir la priorité, mais généralement, vous devez apporter à l'utilisateur là où ils l'avaient laissé.
Si vous utilisez un contrôleur de barre d'onglets, il est relativement simple à mettre en œuvre. En viewDidLoad ou applicationDidFinishLaunching:, vous devez faire quelque chose comme ceci:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSInteger whichTab = [defaults integerForKey:kSelectedTabDefaultsKey];
tabBarController.selectedIndex = whichTab;Ensuite, soit lorsque la sélection change, ou lorsque l'application se ferme, vous avez à stocker hors de l'onglet dans les préférences de sorte qu'il sera là la prochaine fois. Je préfère le faire à chaque changement de sélection des onglets, car alors nous avons capturé, même s'il ya un crash ou un appel téléphonique, mais le faire lorsque l'application se termine est très bien pour la plupart des buts. Voici comment vous inverser le processus:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSInteger whichTab = tabBarController.selectedIndex;
[defaults setInteger:whichTab forKey:kSelectedTabDefaultsKey];Mais que faire si vous êtes juste en utilisant un UITabBar et non pas un UITabBarController? C'est un contact plus difficile parce que les bars onglet ne fonctionnent pas par les indices. Il est relativement facile d'ajouter exactement la même fonctionnalité que sur le contrôleur barre d'onglets à la barre d'onglets en utilisant une catégorie, cependant:
UITabBar-Index.h
#import <Foundation/Foundation.h>
@interface UITabBar(Index)
- (NSUInteger)selectedIndex;
- (void)setSelectedIndex:(NSUInteger)newIndex;
@end
UITabBar-Index.m
#import "UITabBar-Index.h"
@implementation UITabBar(Index)
- (NSUInteger)selectedIndex {
return [self.items indexOfObject:self.selectedItem];
}
- (void)setSelectedIndex:(NSUInteger)newIndex {
self.selectedItem = [self.items objectAtIndex:newIndex];
}
@end
Une fois que vous avez cela, vous pouvez importer cette catégorie et à utiliser exactement le même code d'en haut sur la barre d'onglets plutôt que le contrôleur barre d'onglets.
Voici un exemple de projet. Il comprend une application de barre d'onglet qui permet d'économiser le fonctionnement de la position de la tabulation, et contient également de la catégorie ci-dessus.
Aucun commentaire:
Enregistrer un commentaire