Wenn ich auf die übergeordnete UIView
der aktuellen UIView
zugreifen möchte, deklariere ich das Objekt der übergeordneten UIView
in der aktuellen UIView
und greife darauf zu, indem das übergeordnete UIView
-Objekt der Objekteigenschaft der aktuellen Ansicht zugewiesen wird.
Gibt es eine Möglichkeit, dieses Problem loszuwerden und die Methoden oder Eigenschaften der übergeordneten Ansicht direkt aufzurufen?
Ich versuchte auch (parentView *) self.view.superview
, half aber nicht.
Es gibt einen Fehler beim Aufruf der Funktion für dieses Objekt als
[UIVIew unrecognized selector......
Wenn Sie dies direkt von einer UIView
aus aufrufen (und nicht von einer UIViewController
), sollte es self.superview
anstelle von self.view.superview
sein.
@ Naveed: Dies ist der allgemeine Code, den Sie für jede Ansicht verwenden können, unabhängig davon, ob es sich um eine übergeordnete oder eine untergeordnete Ansicht handelt. Zum Beispiel drücken Sie die Zurück-Taste, um in die Bibliotheksansicht zu wechseln, und schreiben Sie dann diesen Code -
-(IBAction)backButtonPressed:(id) sender
{
llibraryView *libraryview=[[libraryView alloc] initWithNibName:nil bundle:nil];
libraryview.modalTransitionStyle=UIModalTransitionStyleCoverVertical;
[self presentModalViewController:libraryview animated:YES];
[libraryview release];
}
Sag mir, ob dein Problem gelöst ist oder nicht.
Ich kann mir vorstellen, dass Sie die Methode des Viewcontrollers aus Ihrer Ansicht aufrufen möchten, die Sie der Viewcontroller-Ansicht hinzugefügt haben.
Nun haben Sie zwei Möglichkeiten, entweder hier Ihren View Controller als Delegat Ihrer View festzulegen und dann die Methode Ihres Viewcontrollers mit dem [delegate performSelector:] - Ansatz aufzurufen.
Der andere Ansatz besteht darin, dass Sie auf den Überblick Ihrer Ansicht zugreifen und dann dessen Controller erhalten. Sie können das nicht direkt tun, da dies den gesamten Zweck von MVC zunichte machen würde.
Aber es gibt immer noch einen Ausweg, hier geht's: -
Von UIView zu UIViewController gelangen?
Hoffe, das hilft dir.