iOS中的push和pop是一个很常用的视图切换方法,他们是成对出现的, 简而言之,push就是压栈,pop就是出栈! [self.navigationController pushViewController:VC animated:YES]; 那么苹果为实现这一句话具体做了些什么事呢? [self addChildViewController:VC]; // 1 VC.view.frame = [self frameForContentController]; // 2 [self.view addSubview:VC.view]; // 3 [VC didMoveToParentViewController:self]; // 4
既然有push,那么就会有pop [self.navigationController popViewControllerAnimated:YES]; 苹果做的事: [VC willMoveToParentViewController:nil]; // 1 [VC.view removeFromSuperview]; // 2 [VC removeFromParentViewController]; // 3
下面贴出RESideMenu的源码里面它做的处理(其实是一个道理)
|