【问题标题】:Objective C: Navigation title is overridden目标 C:导航标题被覆盖
【发布时间】:2019-09-25 03:45:05
【问题描述】:

我有 3 个故事板,ABCA 有一个TabBarController

当我从 A 移动到 B 时,我会像下面的代码一样:

BViewController* vcB = (BViewController*) [R2Utils getViewControllerWithId:@"BViewController" fromStoryBoard:StoryboardB];
    [self.navigationController presentViewController animated:YES];

其中 vcB 是情节提要中的 NavigationController B

B 导航到C 时:

UINavigationController* nav = (UINavigationController*)  [R2Utils getViewControllerWithId:@"MainAppNavigationController" fromStoryBoard:StoryboardC];

[UIView transitionFromView:self.window.rootViewController.view
                                toView:nav.view
                              duration:0.8f
                               options:UIViewAnimationOptionTransitionFlipFromRight
                            completion:^(BOOL finished){
                                self.window.rootViewController = nav;
                            }];

问题是导航栏的标题被前一个控制器的导航栏覆盖(检查图像)。

【问题讨论】:

  • 您正在从一个视图转换到另一个视图。是不是故意的。您可能想在 ViewController 上调用 transitionFromViewController。由于酒吧是由 VC 管理的,所以你会得到那些奇怪的工件。
  • 你可以试试这个方法可能会奏效。在 viewWillAppear 中可以隐藏前一个 Controller 的导航栏。viewWillDisappear 可以取消隐藏相同的导航栏。

标签: objective-c navigation uinavigationcontroller storyboard


【解决方案1】:

问题很简单: 来自故事板B 的先前控制器仍处于异质性。故事板C 中的navigationController 有一个backgoroundColor = [UIColor clearColor]。 所以在storyBoardC中,我们可以看到当前控制器的title和storyBoardBnavigationController栏的内容

【讨论】:

    猜你喜欢
    • 2018-08-02
    • 2014-05-21
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    • 2020-11-26
    • 1970-01-01
    相关资源
    最近更新 更多