objective c - from - Agregue un ContainerView dentro de un UIViewController creado desde.xib
load view from xib swift 4 (2)
Tengo un archivo .xib y quiero agregarlo a una vista de contenedor (para colocar dentro de un ViewController). Desafortunadamente una vista de contenedor solo es desechable por el guión gráfico Pero cuando creo un archivo .xib y busco el controlador de vista de contenedor, no lo encontré. ¿Puede alguien darme consejos sobre cómo lograr mi tarea?
Mira esto:
SelectDateViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"selectDateVCID"];
[self addChildViewController:vc];
[vc.view setFrame:CGRectMake(0.0f, 0.0f, self.selectDateContainerView.frame.size.width, self.selectDateContainerView.frame.size.height)];
[self.selectDateContainerView addSubview:vc.view];
[vc didMoveToParentViewController:self];
Si está utilizando un xib
lugar de un storyboard
, simplemente puede agregar una vista UIView
simple a la xib
para que actúe como un contenedor. Luego, en el código, agregue la view
de childViewController como una subvista del contenedor. Aquí, he seguido los métodos apropiados de controlador de vista secundaria y he agregado restricciones de diseño para asegurar que su marco se actualice con el marco del contenedor:
- (void)viewDidLoad {
[super viewDidLoad];
UIViewController *childViewController = ...; // create your child view controller
[self addChildViewController:childViewController];
[self.containerView addSubview:childViewController.view];
[childViewController didMoveToParentViewController:self];
NSArray *horzConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[childView]|"
options:0
metrics:nil
views:@{@"childView" : childViewController.view}];
NSArray *vertConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[childView]|"
options:0
metrics:nil
views:@{@"childView" : childViewController.view}];
[self.view addConstraints:horzConstraints];
[self.view addConstraints:vertConstraints];
childViewController.view.translatesAutoresizingMaskIntoConstraints = NO;
}