Frage

Ich arbeite in Xcode auf einem iPod App in Objective-C, und ich habe ein Feld (Navigation) in einer meiner Klassen (RootViewController). Wie kann ich die instanzierte RootViewController des Navigation von einer anderen Klasse verweisen? Zum Beispiel, wie würde ich dies tun, wenn ich die Navigation aus der FirstViewController.m Klasse verweisen möge?

Ich scheine nur in der Lage sein, Referenzen zu finden dies die Anwendung Delegierten zu verweisen.

Wenn ich die Anwendung Delegaten mit FirstViewController verweisen möchten, ich nur sagen:

MyAppDelegate *delegate = [[UIApplication sharedApplication] delegate];

[delegate.navigationController pushViewController:childController animated:YES];

Wie kann ich tun dies für die RootViewController Klasse statt MyAppDelegate?

War es hilfreich?

Lösung

Auf der Grundlage der Frage, die Sie gefragt werden, scheint es, dass Sie Methoden auf dem UINavigationController anrufen möchten, die weiter oben im Stapel ist. Alle UIViewControllers bereits eine Eigenschaft Navigation haben, welche die UINavigationController ist, dass ein Vorfahre dieser Viewcontroller auf dem Stapel ist.

Wenn Sie also eine RootViewController hatte, genannt Wurzel, dass irgendwann tat dies

FirstViewController * first = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:nil];
[self.navigationController pushViewController:first animated:YES];
[first release];

Dann first.navigationController == root.navigationController

So innerhalb der ersten Berufung     [self navigationController] erhalten Sie die gleiche Navigation geben, dass zuerst auf in erster Linie geschoben wurde.

Andere Tipps

Ein Objekt muss einen Verweis auf den anderen. Es gibt viele Möglichkeiten, dies zu verwirklichen. Zum Beispiel:

  • Haben Sie das gleiche Objekt erstellen beide und, da sie weiß, sie beide, sagen sie umeinander
  • Erstellen Sie sie in der gleichen Feder und haken sie mit normalen Verbindungen bis
  • Haben Sie den Eigentümer der Spitze eines der Objekte ist in weiß um die anderen

Im Wesentlichen ist dies nur eine Frage der Anwendung der Gestaltung richtig so, dass die Objekte übereinander gesagt werden können. Es gibt niemanden, Magie, was Sie tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top