Pregunta

Estamos implementando una aplicación basada en web en iPhone. Si me contestó el teléfono entrante llamar a mi aplicación se vuelve a lanzar una vez más en lugar de reanudar la aplicación al estado en que dure el foco.

estamos implementando pila de puntos de vista. Es decir, estoy manteniendo puntos de vista de manera pila y cada punto de vista tiene la información como imágenes e información de texto, si estoy en la tercera o cuarta opinión, si me contestó el teléfono entrante llamar a mi aplicación se vuelve a lanzar y que está mostrando primera vista única.

Por favor, dígame cómo reanudar el cuarto nivel de vista.

¿Fue útil?

Solución

DrillDownSave muestra de Apple - que muestra cómo hacer eso.

Otros consejos

Por desgracia, el iPhone no hace mucho para ayudar aquí. No puedo garantizar que esto será útil para usted, pero esto es cómo lo hago.

En mi aplicación tengo el siguiente protocolo:

@protocol SaveState

    - (NSData*) saveState;
    - (id) initWithSaveState:(NSData*)data;

@end

Cualquier UIViewController que tengo que ser capaz de guardar su estado implementa.

En applicationWillTerminate: tengo el siguiente código:

for (UIViewController* vc in self.navigationController.viewControllers) {
    if ([vc conformsToProtocol:@protocol(SaveState)]) {
        NSArray* state = [NSArray arrayWithObjects:NSStringFromClass([vc class]), [(UIViewController<SaveState>*)vc saveState], nil];
        [vcList addObject:state];
    }
}

A continuación, guarde vcList a la NSUserDefaults. Para restablecer el estado Tengo esto en applicationDidFinishLaunching::

for (NSArray* screen in screenList) {
    UIViewController<SaveState>* next = [[NSClassFromString([screen objectAtIndex:0]) alloc] initWithSaveState:([screen count] == 2) ? [screen objectAtIndex:1] : nil];
    if (next != nil) {
        [[self navigationController] pushViewController:next animated:NO];
        [next release];
    }
    else {
        // error handling
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top