Wenn App gestartet wird, verwende ich diese Methode, um den Stammansicht-Controller festzulegen.swift subview füllt die Elternansicht nicht vollständig
func showRootViewController() {
let sb = UIStoryboard.init(name: "Main", bundle: nil)
let mainViewController = sb.instantiateInitialViewController()!
self.window?.rootViewController = mainViewController
self.window?.makeKeyAndVisible()
}
Im Haupt View-Controller, I-Code haben den Blick auf Container Ansicht
class MainViewController: UIViewController {
@IBOutlet weak var headerView: UIView!
@IBOutlet weak var containerView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
if(userManager.hasRegistered()) {
let sb = UIStoryboard.init(name: "Login", bundle: nil)
self.setContentViewController(sb.instantiateInitialViewController()!)
} else {
let sb = UIStoryboard.init(name: "Registration", bundle: nil)
self.setContentViewController(sb.instantiateInitialViewController()!)
}
}
func setContentViewController(_ contentViewController: UIViewController) {
print(self.containerView.frame)
let contentView = contentViewController.view!
contentView.frame = self.containerView.bounds
self.containerView.addSubview(contentView)
}
}
Let Blick auf die Ansicht zu setzen, ich habe Behälter Ansicht, was verwendet wird Subviews hinzuzufügen. Ich habe den Hintergrund jeder zu helfen, den Rahmen der Containeransicht Adresse
Die subview ausgelegt ist wie folgt:
Das Ergebnis ist nicht so meine erwartet. ContainerView ist irgendwo hingegangen (ich weiß es wirklich nicht), die Subview ist auf der Oberseite.
Bitte helfen Sie mir.
das Ergebnis immer noch gleich ist. viewDidLayoutSubviews wird sogar vor viewDidAppear ausgeführt. – duykaka
versuchen, dies zu lesen: https://developer.apple.com/library/content/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html – iGenio
Vielen Dank @iGeno. Der Schlüssel fehlt Add-Child-View-Controller. – duykaka