我的理解是:
1. 头条 -> 新闻页, 是一个master-detail 结构
2. 新闻页 -> 跟贴页, 是一个Flip变换
3. 问题出现在 跟贴页 Navbar上的backButton是如何实现的,看上去像新push到navController上一样。细看动画,可以看出来是要经过 新闻页 才回到 头条页的。
请问第3步这个代码如何实现? 或者别的实现方式?
EDIT:用custom segue实现了一个这种效果
- (void)perform { UIViewController *src = self.sourceViewController; UIViewController *dst = self.destinationViewController; [UIView transitionWithView:src.navigationController.view duration:1 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{ [src.navigationController pushViewController:dst animated:NO]; } completion:nil]; }
跟贴页的backbutton自己贴一个button,action里popToRootVC就可以了
[self.navigationController popToRootViewControllerAnimated:YES];
我怀疑第2步并没有走navController,而是直接做了View的操作,所以navBar上的back button不变。
第3步,当back button被点击的时候,会出发willDisappear方法,在这里把新闻页还原成正文。
也就是说他的结构是
NavController:[ 头条ViewController -> 新闻页ViewController(正文View;跟帖View)]