que containerview container ios uinavigationcontroller childviewcontroller

ios - containerview - Establecer el marco de un controlador de navegación agregado como un controlador de vista infantil



use container view swift 4 (1)

En realidad, funciona si haces esto en viewDidLoad inmediatamente después de agregar el controlador de vista secundaria al padre:

_navController.view.frame = CGRectInset(self.view.bounds, 20, 20);

Estoy tratando de agregar un UINavigationController como un controlador de vista hijo y luego le doy un marco más pequeño que su padre. Sin embargo, cambiar el marco del controlador de navegación no cambia correctamente el marco del controlador de vista raíz del controlador de navegación.

En viewDidLoad

RootController *rootController = [[RootController alloc] init]; _navController = [[UINavigationController alloc] initWithRootViewController:rootController]; [rootController release]; [self addChildViewController:_navController]; [self.view addSubview:_navController.view]; [_navController didMoveToParentViewController:self];

Luego, en viewWillAppear: , viewWillAppear: :

CGRect bounds = self.view.bounds; bounds.origin.x = 20; bounds.origin.y = 20; bounds.size.width = bounds.size.width - 20; bounds.size.height = bounds.size.height - 20; _navController.view.bounds = bounds;

Mientras la barra de navegación está colocada correctamente, el fondo blanco del controlador de vista raíz no. ¿Qué estoy haciendo mal exactamente? Gracias por tu ayuda.