English 中文(简体)
How to resume view stack of iphone application
原标题:

We are implementing one web based application in iPhone. if i answered the incoming phone call my application is relaunching once again instead of resume the application to the state where it last the focus.

we are implementing stack of views. I.e i am maintaining views in a stack manner and each view has the information like images and text information, if i am in 3rd or 4th view, if i answered the incoming phone call my application is relaunching and it is showing 1st view only.

Please tell me how to resume to the 4th view level.

最佳回答

See Apple s DrillDownSave sample - it demonstrates how to do that.

问题回答

Unfortunately the iPhone doesn t do very much to help you here. I can t guarantee that this will be useful for you but this is how I do it.

In my app I have the following protocol:

@protocol SaveState

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

@end

Any UIViewController that I need to be able to save its state implements it.

In applicationWillTerminate: I have the following code:

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

I then save vcList to the NSUserDefaults. To restore the state I have this 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
    }
}




相关问题
List Contents of Directory in a UITableView

I am trying to list the contents of Ringtones directory in a TableView, however, I am only getting the last file in the directory in ALL cells, instead of file per cell. This is my code: - (...

iPhone NSUserDefaults persistance difficulty

In my app i have a bunch of data i store in the NSUserdefaults. This information consists of an NSObject (Object1) with NSStrings and NSNumbers and also 2 instances of yet another object (Object2). ...

Writing a masked image to disk as a PNG file

Basically I m downloading images off of a webserver and then caching them to the disk, but before I do so I want to mask them. I m using the masking code everyone seems to point at which can be found ...

Resize UIImage with aspect ratio?

I m using this code to resize an image on the iPhone: CGRect screenRect = CGRectMake(0, 0, 320.0, 480.0); UIGraphicsBeginImageContext(screenRect.size); [value drawInRect:screenRect blendMode:...

Allowing interaction with a UIView under another UIView

Is there a simple way of allowing interaction with a button in a UIView that lies under another UIView - where there are no actual objects from the top UIView on top of the button? For instance, ...

热门标签