Ios UINavigationBar背景阴影

Ios UINavigationBar背景阴影,ios,objective-c,uinavigationcontroller,uinavigationbar,uitoolbar,Ios,Objective C,Uinavigationcontroller,Uinavigationbar,Uitoolbar,当我切换到我制作的UIViewController时,我遇到了一个奇怪的问题。ViewController B(我要访问的)有一个UIView,它使用TransitionCoordinator和约束向下滑动,但它在右侧显示灰色阴影,如下所示: 完成segue后,它将返回半透明状态,并通过UINavigationBar以漂亮的模糊显示蓝色UIView 此灰色阴影很可能是由于我从中选择的UITableViewController上该工具栏中的UIToolBar和UISegmentedControl

当我切换到我制作的UIViewController时,我遇到了一个奇怪的问题。ViewController B(我要访问的)有一个UIView,它使用TransitionCoordinator和约束向下滑动,但它在右侧显示灰色阴影,如下所示:

完成segue后,它将返回半透明状态,并通过UINavigationBar以漂亮的模糊显示蓝色UIView

此灰色阴影很可能是由于我从中选择的UITableViewController上该工具栏中的UIToolBar和UISegmentedControl造成的。看起来是这样的:

我将此代码与UIToolBar一起使用:

- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar {
    return UIBarPositionTopAttached;
}
-(UIBAR位置)位置FORBAR:(id)bar{
返回UIBarPositionTopAttached;
}
我曾尝试使用TransitionCoordinator使用UIToolBar的alpha属性淡出它,但没有成功。我也访问了其他类似的问题,但我没有得到任何进展

奇怪的是,它有时会正常工作,但我不明白为什么它不总是发生,也不知道如何完全消除它

查看层次结构:

Xcode视图层次结构:

查看列表中的层次结构:

透明导航栏:

更多信息:

  • 下拉UITableView也会显示此信息,如何连接UIToolbar?看起来委托方法无法正常工作
  • 将新项目添加到列表时,问题将消失,直到重新启动导航层次结构中的根ViewController

谢谢

- (void)removeShadowLineFromNavBar{
for (UIView *view in self.navigationController.navigationBar.subviews) {
    for (UIView *view2 in view.subviews) {
        if ([view2 isKindOfClass:[UIImageView class]]) {
            [view2 removeFromSuperview];
        }
    }
}
}

该行作为子视图在UINavigationBar中是一个
UIImageView
。浏览子视图时,您可以像从超级视图中删除任何其他视图一样删除它。

我在目标ViewController底部的模糊(正常)UIToolBar上看到了相同的效果。你认为这也能解决这个问题吗?今天晚些时候,代码删除了这一行,但我仍然遇到灰色阴影问题。我还需要一种恢复此UIImageView阴影线的方法,因为我需要在同一导航堆栈中的其他ViewController上使用它