2010-10-14 3 views
1

Je suis très novice avec Three20. J'essaye de faire une interface basée sur TTLauncherView, sans succès pour le moment.Comment lancer une vue basée sur TTTableView avec TTLauncherView?

Mon LauncherView contient un bouton, mappé à une URL. Lorsque je clique sur ce bouton, je veux que TTTableView soit affiché à l'écran. Mais je n'ai rien.

Voici un morceau de mon code AppDelegate:

[map from:@"tt://rank" toViewController:[RankController class]]; 

Et le code LauncherView (un morceau aussi):

launcherView.pages = [NSArray arrayWithObjects: 
         [NSArray arrayWithObjects: 
         [[[TTLauncherItem alloc]  
         initWithTitle:@"Rank" 
         image:@"bundle://defaultMusic.png" 
         URL:@"tt://rank" 
         canDelete:YES] autorelease],nil], nil]; 

Le bouton est ici, pas de problème. Mais lorsqu'on clique dessus, il n'ouvre jamais ma classe RankController. Voici sa source:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
    { 
     if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) 
     { 
      self.title = @"Rank"; 
      self.variableHeightRows = YES; 
     } 

     return self; 
    } 

- (void)dealloc 
{ 
    [super dealloc]; 
} 

- (void) createModel 
{ 
    NSLog(@"rank"); 
    self.dataSource = [TTSectionedDataSource dataSourceWithObjects: 
         @"Items", 
         [TTTableTextItem itemWithText:@"Item n°1" URL:nil], 
         [TTTableTextItem itemWithText:@"Item n°2" URL:nil], 
         [TTTableTextItem itemWithText:@"Item n°3" URL:nil], 
         [TTTableTextItem itemWithText:@"Item n°4" URL:nil], 
         [TTTableTextItem itemWithText:@"Item n°5" URL:nil], 
         nil]; 

} 

J'ai essayé de procéder de la même manière que les exemples emballés dans Three20, alors qu'est-ce que je fais mal?

Merci à l'avance

Répondre

1

Vous devez mettre en œuvre le TTLauncherViewDelegate. Dans votre fichier .h, déclarez votre contrôleur en vue de mettre en œuvre le TTLauncherViewDelegate:

@interface SFLauncherViewController : TTViewController <TTLauncherViewDelegate> 

Puis dans le fichier .m, mettre en œuvre cette méthode:

- (void)launcherView:(TTLauncherView *)launcher didSelectItem:(TTLauncherItem *)item{ 
    NSLog(@"did select item: %@", [item URL]); 
    TTNavigator *navigator = [TTNavigator navigator]; 

    TTURLAction *action = [[TTURLAction actionWithURLPath:[item URL]] applyAnimated:YES]; 

    [navigator openURLAction:action]; 
} 
+0

Il fonctionne. Merci beaucoup – Harkonnen

Questions connexes