网易新闻客户端,跟贴页Nav上的backbutton是如何直接回到头条页的-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

网易新闻客户端,跟贴页Nav上的backbutton是如何直接回到头条页的

a123456678 2016-07-19 17:08:44 1977

我的理解是:

  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)
  • MD5Ryan
    2019-07-17 19:58:35
    navigationController 有个直接返回到rootViewController的方法
    0 0
  • a123456678
    2019-07-17 19:58:35

    我怀疑第2步并没有走navController,而是直接做了View的操作,所以navBar上的back button不变。
    第3步,当back button被点击的时候,会出发willDisappear方法,在这里把新闻页还原成正文。
    也就是说他的结构是
    NavController:[ 头条ViewController -> 新闻页ViewController(正文View;跟帖View)]

    0 0
添加回答
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章