Tengo una aplicación basada en la navegación donde coloco mis vistas personalizadas en la vista de navegación.crear una vista mediante programación con el marco establecido en el marco de Superview?
Primero, quiero saber cómo obtener el marco "vista de navegación" para que pueda colocar mi vista personalizada correctamente.
Además, a veces oculto la barra de navegación y quiero asegurarme de obtener correctamente la información del marco. (no con [[UIScreen mainScreen] bounds])
En segundo lugar, en general, ¿cómo accedo al marco de la supervista para que pueda colocar una vista en consecuencia?
Intenté lo siguiente sin éxito.
-(void) loadView {
[super loadView];
UIView* myView = [[UIView alloc] initWithFrame: CGRectZero];
self.view = myView;
self.view.frame = self.view.superview.frame;
[myView release];
}
o estableciendo el marco en layoutSubviews, pero noté que layoutSubviews no se llamaba. Supongo que eso se debe a que no tengo ninguna subvista en esta vista en particular.
que
operación -Editar-
Gracias con las respuestas dadas, ahora sé que tengo que configurar el view.frame a los límites de SuperView.
El problema es que no puedo acceder a superview dentro de viewDidLoad.
Veo que la supervista está configurada correctamente en viewWillAppear pero no en viewDidLoad.
descubrí que viewDidLoad es llamado en varias ocasiones, como cuando empujado por pushViewController o acceder self.view
Tengo el siguiente código y viewDidLoad se llama a partir de cero == controller.view.superview.
if (nil == controller.view.superview) {
CGRect frame = scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
controller.view.frame = frame;
[scrollView addSubview:controller.view];
}
Ya que no puedo acceder supervista de viewDidLoad, no puedo Esquema de la vista como antes lo hice en viewDidLoad. Esto parece tan inconveniente e innecesariamente complejo.
Cualquier sugerencia por favor?
necesita leer ver jerarquía en iOS. – Tirth
sí, googlearlo. – eugene