ios导航控制器UINavigationController,控制器a跳转(push)到b后,b跳转(push)到c,但c后退(pop)进入a

参考:StackOverflow

ios导航控制器UINavigationController,控制器a跳转(push)到b后,b跳转(push)到c,但c后退(pop)进入a。在b跳转(push)到c中代码书写如下:

     UINavigationController *navController = [[self.navigationController retain] autorelease];
     [navController popViewControllerAnimated:NO];
     ViewControllerC *_viewController = [[[ViewControllerC alloc] init] autorelease];
     [navController pushViewController:_viewController animated:YES];

代码解析

    // self.navigationController(...,ViewControllerA、ViewControllerB)
    // navController(nil)
    UINavigationController *navController = [[self.navigationController retain] autorelease];
    // self.navigationController(...,ViewControllerA、ViewControllerB)
    // navController(...,ViewControllerA、ViewControllerB)
    [navController popViewControllerAnimated:NO];
    // self.navigationController(nil)
    // navController(...,ViewControllerA)

    ViewControllerC * _viewController = [[[ViewControllerC alloc] init] autorelease];
    _viewController.messageEntity = [self.listArray objectAtIndex:indexPath.row];
    
    // self.navigationController(nil)
    // navController(...,ViewControllerA)
    [navController pushViewController:_viewController animated:YES];
    // self.navigationController(nil)
    // navController(...,ViewControllerA、ViewControllerC)


你可能感兴趣的:(ios,push,pop,导航控制器)