gui - ios status bar



View-Controller als untergeordnete Ansicht in ios hinzufügen (2)

Hi ich versuche, einen view controller als eine child view hinzuzufügen. und später entfernen Sie diese view controller Formular übergeordnete view controller Ich verwende folgenden Code für diesen Zweck.

 self.loginView = [self.storyboard instantiateViewControllerWithIdentifier:@"LOGIN"];
 [self.view addSubview:self.loginView.view];

Dieser Code funktioniert gut für iOS8 aber in iOS7 dieser Code nicht. Er zeigt die Hälfte des Bildschirms an. Bei halbem Login wird angezeigt.

Was könnte die Lösung dafür sein ??


Answer #1

Das Hinzufügen eines UIViewController als subView ist keine Standardprogrammierung. Ich glaube, UIViewController soll eine vollständige Ansicht auf dem Bildschirm ermöglichen. Anstatt einen UIViewController zu Ihrem UIView , sollten Sie eine benutzerdefinierte UIView erstellen und dann diese UIView , um die UIView Ergebnisse zu erzielen.

EDIT: Verwenden Sie XIB, um eine benutzerdefinierte UIView zu erstellen.


Answer #2

Fügen UIView in Ihrer Hauptansicht (in XIB) ein benutzerdefiniertes UIView Objekt hinzu, in dem Sie Ihren UIView Ansichtscontroller hinzufügen und anzeigen möchten. Sei contentView der Name dieser Ansicht. Verwenden Sie folgenden Code, um den untergeordneten Ansichtscontroller hinzuzufügen:

self.loginView = [self.storyboard instantiateViewControllerWithIdentifier:@"LOGIN"];
[self addChildViewController:self.loginView];
[self.loginView.view setFrame:CGRectMake(0.0f, 0.0f, self.contentView.frame.size.width, self.contentView.frame.size.height)];
[self.contentView addSubview:self.loginView.view];
[self.loginView didMoveToParentViewController:self]; 

Wenn Sie die letzte Zeile nicht hinzufügen, empfängt Ihr untergeordneten Ansichtscontroller keine Ereignisse. Mit diesem Code können Sie gleichzeitig Ereignisse in den übergeordneten und untergeordneten Ansichtscontrollern empfangen.





ios8