webentwicklung-frage-antwort-db.com.de

Zugriff auf übergeordnete Ansicht der aktuellen Ansicht - iOS

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......
37
Naveed Rafi

Wenn Sie dies direkt von einer UIView aus aufrufen (und nicht von einer UIViewController), sollte es self.superview anstelle von self.view.superview sein.

74
omz

@ 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.

0

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. 

0
c4code