开发者

A question regarding to the state maintainance

If i have total 10 views such as from 1 to 2, 2 to 3,and same as upto 10

if i go to 5 th view,then i press home button and then i go to another application and then after doing some task ,i go to home button and then i press my application my 1 st view opens but i want to open my 5 th view开发者_开发技巧

plzzzzzzzzz tell me solution for this waiting fo reply


What I do is put an integer in NSUserDefaults for the key @"navigationDepth" with how deep it is, and any other information such as the index of the item being edited. Then when the app launches, the app delegate sends a message to view controllers to push the appropriate number of view controllers. Here's some sample code:

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
    [window addSubview:[navigationController view]];
    [window makeKeyAndVisible];

    // Restore navigation depth and picture being viewed or edited
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    id root = [navigationController topViewController];
    int navDepth = [defaults integerForKey:@"navDepth"];
    int pictureIndex = [defaults integerForKey:@"currentPictureIndex"];
    switch (navDepth) {
        case 1:
            [root viewImageAtIndex:pictureIndex animated:NO];
            break;
        case 2:
            [root editImageAtIndex:pictureIndex animated:NO];
            break;
        default:
            break;
    }
}

Edit: Here is the code for pushing view controllers:

- (void) viewImageAtIndex:(int)index animated:(BOOL)animated {
    if ((0 <= index) && (index < allPictures.count)) {
        ViewerViewController *c = [[ViewerViewController alloc] initWithNibName:@"ViewerViewController"];
        c.allPictures = self.allPictures;
        c.currentPictureIndex = index;
        [self.navigationController pushViewController:c animated:animated];
        [c release];
    }
}

- (void) editImageAtIndex:(int)index animated:(BOOL)animated {
    ViewerViewController *c = [[ViewerViewController alloc] initWithNibName:@"ViewerViewController"]; 
    c.allPictures = self.allPictures;
    c.currentPictureIndex = index;
    [self.navigationController pushViewController:c animated:NO];
    [c editPictureWithAnimation:animated]; // Immediately push the editor view controller
    [c release];
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜