Domanda

Stiamo implementando un'applicazione web based in iPhone. se ho risposto al telefono in entrata chiamare il mio applicazione rilancia ancora una volta, invece di riprendere l'applicazione per lo stato in cui farlo durare il fuoco.

stiamo attuando pila di vista. Cioè io sto mantenendo viste in maniera stack e ogni vista ha le informazioni come le immagini e le informazioni di testo, se sono in 3 ° o 4 ° vista, se ho risposto al telefono in entrata chiamare il mio applicazione rilancia ed è solo mostrando prima vista.

Ti prego, dimmi come riprendere a livello di vista 4.

È stato utile?

Soluzione

DrillDownSave campione di Apple - si dimostra come farlo.

Altri suggerimenti

Purtroppo l'iPhone non fa molto per aiutare voi qui. Non posso garantire che questo sarà utile per voi, ma questo è come lo faccio.

Nella mia app ho il seguente protocollo:

@protocol SaveState

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

@end

Qualsiasi UIViewController che ho bisogno di essere in grado di salvare il suo stato implementa.

In applicationWillTerminate: Ho il seguente codice:

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];
    }
}

Ho quindi risparmio vcList al NSUserDefaults. Per ripristinare lo stato ho questo in 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
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top