Ich habe wenige Posts für dieses Problem gefunden, aber keine von ihnen hat mein Problem gelöst.Hinzufügen eines View-Controllers als Unteransicht in einem anderen View-Controller
sagen, wie ich habe ..
- ViewControllerA
- ViewControllerB
Ich versuchte ViewControllerB als Subview in ViewControllerA hinzuzufügen, aber es wie "fatal error: unexpectedly found nil while unwrapping an Optional value
" einen Fehler hat zu werfen.
Unten ist der Code ...
ViewControllerA
var testVC: ViewControllerB = ViewControllerB();
override func viewDidLoad()
{
super.viewDidLoad()
self.testVC.view.frame = CGRectMake(0, 0, 350, 450);
self.view.addSubview(testVC.view);
// Do any additional setup after loading the view.
}
ViewControllerB mit einem Etikett in es nur ein einfacher Bildschirm.
ViewControllerB
@IBOutlet weak var test: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
test.text = "Success" // Throws ERROR here "fatal error: unexpectedly found nil while unwrapping an Optional value"
}
EDIT
Mit der vorgeschlagenen Lösung aus den Benutzer Antworten, ViewControllerB in ViewControllerA wird der Bildschirm abgehend. Der graue Rahmen ist der Rahmen, den ich für die Unteransicht erstellt habe.
Vielen Dank für die ausführliche Erklärung. Wenn ich 'ViewControllerB' zu' ViewControllerA' hinzufügte, ging 'ViewControllerB' vom Bildschirm aus. Ich habe meinen Beitrag mit dem Screenshot des Simulators bearbeitet. –
Das ist möglich. Deshalb habe ich in meinem Beispiel den 'frame' manuell gesetzt. Oder wenn Sie 'translaisFrameIntoConstraints' (oder wie auch immer es heißt) ausschalten, und Sie können Constraints wahrscheinlich auch programmatisch hinzufügen. Wenn Sie jedoch die Unteransicht hinzufügen, sind Sie für die Festlegung des Rahmens auf die eine oder andere Weise verantwortlich, genau wie für alle programmatisch hinzugefügten Unteransichten. – Rob
So können Sie Grenzen hinzufügen 'controller.view.frame = UIScreen.mainScreen(). Bounds' –