Pregunta

Estoy escribiendo mi propia SplitViewController desde cero (es decir subclasificando UIViewController y no UISplitViewController).

Tiene dos sub-viewControllers (uno para el panel de la izquierda y otro para el detalle panel derecho), a los que necesito enviar los mensajes apropiados (viewWillAppear, viewDidAppear, viewWillDisapppear and viewDidDisappear).

Ya estoy enviando esos mensajes cuando mi costumbre SplitViewController los recibe y funciona bien. Sin embargo estoy luchando para averiguar cuándo enviar cuando cualquiera de los dos sub-viewcontrollers se sustituye por uno nuevo, que también necesita recibir esos mensajes. Estoy añadiendo el punto de vista de la nueva UIViewController correctamente, pero los mensajes no son llamados de manera adecuada.

Mi planteamiento inicial era llamarlos en la incubadora de los sub-viewControllers, llamando viewWillDisappear a UIViewController a punto de ser puesto en libertad y viewWillAppear al nuevo conjunto UIViewController, pero éste se ejecuta antes de viewDidLoad y por lo tanto supongo que está mal.

También he visto que tiene un UIView didAddSubview: método que podría ser útil saber cuándo llamar viewDidAppear en el UIViewController corresponsal.

Cualquier ayuda sería muy apreciada!

¿Fue útil?

Solución

Si desea reflejar UISplitViewController, parece mejor tener sólo UIViewControllers ficticias que imprimen cada vez que se llama cada método.

En cuanto a su problema actual de la ordenación de viewWillDisappear, viewWillAppear y viewDidLoad, acaba de hacer:

-(void)setSomeViewController(UIViewController newVC)
{
    [oldVC viewWillDisappear];
    [newVC view]; // Causes newVC to load the view, 
                  // and will automatically call -viewDidLoad
    [newVC viewWillAppear];

    [oldVC.view removeFromSuperview];
    [self.view addSubview:newVC.view];

    //retain and release as appropriate
    // other stuff you'll need to mirror, etc. etc.
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top