【问题标题】:Objective-C: UINavigationBar not update when go back to root controllerObjective-C:返回根控制器时 UINavigationBar 不更新
【发布时间】:2016-07-04 15:44:47
【问题描述】:

这是我的问题。我有三个视图控制器(VC1、VC2 和 VC3)。从 UINavigationControllerDelegate 继承的每个视图控制器,我以这种方式将我的导航控制器委托给 viewWillAppear 方法:

self.navigationController.delegate = self;

我使用的唯一 UINavigationControllerDelegate 方法是用于转换:

- (id<UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController
                                  animationControllerForOperation:(UINavigationControllerOperation)operation
                                               fromViewController:(UIViewController *)fromVC
                                                 toViewController:(UIViewController *)toVC {
    if (operation == UINavigationControllerOperationPush || operation == UINavigationControllerOperationPop) {
        myTransitionController *transitionController = [[myTransitionController alloc] init];
        return transitionController;
    }else{
        return nil;
    }
}

我的问题是:当我从 VC1 走到 VC2 并进入该控制器触发 NSNotification 时,我执行 popViewControllerAnimated 以返回之前的视图控制器 (VC1)。这是代码:

- (void) backToRoot: (id) sender{
    [self.navigationController popViewControllerAnimated:YES];
}

并且 UINavigationBar 正确显示其外观(UINavigationBar 没有后退按钮)。然后,当我从 VC1 走到 VC2 直到 VC3,并以编程方式返回到带有 popToRootViewController 的 VC1 时,视图的转换 (VC3-VC2-VC1) 它工作得很好,但是 UINavigationBar 外观没有更新,它显示为VC1(根视图控制器)中的后退按钮。我在VC3中实现的方法是这样的:

- (void) goToRoot{
   [self.navigationController popToRootViewControllerAnimated:YES];
}

我尝试过两次调用 popViewControllerAnimated,我在 VC2 中添加了 viewWillAppear 和 viewDidAppear 方法,但它也不起作用。有人知道会发生什么吗?

【问题讨论】:

    标签: ios objective-c


    【解决方案1】:

    根据文档,func 会弹出堆栈上除根视图控制器之外的所有视图控制器并更新显示,但我无法找出问题所在。你可以试试 unwind segue,真的很简单。

    What are Unwind segues for and how do you use them?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      • 2011-06-15
      • 1970-01-01
      • 2014-01-22
      • 2016-05-28
      • 1970-01-01
      相关资源
      最近更新 更多