2011-01-15 10 views
1

Dieses Problem scheint, als wäre es sehr schwer zu erklären, also werde ich mein Bestes versuchen.TTNavigation Weitergabe von Daten

Ich habe mehrere Benutzerprofile. Ich möchte, dass sie alle von derselben Klasse behandelt werden.

TT://User/1 
TT://User/2 

Wie kann ich es in einer Karte, warum diejenigen, sowohl für die Benutzerklasse schieben waren.

Zusätzlich wie kann ich Benutzerklasse, welche Benutzer-ID zu ziehen.

Antwort

3

Zuerst müssen Sie URLs zu Controllern zuordnen. Normalerweise machen Sie dies in AppDelegate, da Sie die URL-Zuordnung einrichten möchten, bevor Sie eine URL aufrufen, um eine Ansicht anzuzeigen.

  • eine TTNavigator Instantiate
  • Ordnen Sie die URLs zu den Steuerungen über TTURLMap
  • immer mit einem Platzhalter-URL also beginnen. * und ordnen Sie es einem Standard-View-Controller wie TTWebController (dem Webbrowser-View-Controller) zu
  • Grundsätzlich gibt es 2 Arten von URL: 1) URL ohne Parameter und 2) URL w/Parameter. Wenn URL aufgerufen wird, wird der initWithNibName: bundle: "constructor" des zugeordneten View-Controllers aufgerufen. Für Letzteres können Sie angeben, welche "init" -Methode in TTURLMap aufgerufen werden soll. Siehe Beispiel unten.
  • Öffnet eigentlich eine URL über openURLAction: method.

Hier ist der Code.

@implementation AppDelegate 

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
    TTNavigator* navigator = [TTNavigator navigator]; 

    TTURLMap* map = navigator.URLMap; 

    // This is the default map. * = wildcard, any URL not registered will be 
    // routed to the TTWebController object at runtime. 
    [map from:@"*" toViewController:[TTWebController class]]; 
    [map from:@"tt://catalog" toViewController:[CatalogController class]]; 
    [map from:@"tt://user/(initWithId:)" 
toViewController:[MyUserViewController class]]; 
    [map from:@"tt://user/(initWithId:)" 
toViewController:[MyUserViewController class]]; 

    if (![navigator restoreViewControllers]) { 
    [navigator openURLAction:[TTURLAction actionWithURLPath:@"tt://catalog"]];  
    } 
} 

// ... 

@end 

Zweitens Unterklasse eine TTViewController

@implementation MyUserViewController 

- (id) initWithId:(NSNumber *)index { 
    if (self = [super initWithNibName:nibName bundle:nil]) { 
    // Do your initialization here. 

    // Get the index from a singleton data manager containing the "model." 
    } 

    return self; 
} 

@end 

Drittens von überall in der App auf die URL navigieren.

// Navigate to the URL. 
[[TTNavigator navigator] openURLAction:[TTURLAction actionWithURLPath:@"tt://user/1"]]; 
Verwandte Themen