UINavigationController 阴影

UINavigationController Shadow

尝试按照概述的方法 here 向我的 UINavigationController 添加阴影。不过这个方法好像不行。

这是我使用的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    // ..... etc. ....

    self.navigationController.view.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:self.navigationController.view.bounds cornerRadius:self.navigationController.view.layer.cornerRadius].CGPath;
    [self.navigationController.view.layer setMasksToBounds: NO];
    [self.navigationController.view.layer setShadowColor: [UIColor blackColor].CGColor];
    [self.navigationController.view.layer setShadowOffset: CGSizeMake(0, 1)];
    [self.navigationController.view.layer setShadowRadius:3];
    [self.navigationController.view.layer setShadowRadius: 4.0];
    [self.navigationController.view.layer setShadowOpacity: 0.25];

没有阴影:((见图)

知道为什么吗?感谢您的任何意见。

这对我有用:尝试将您正在设置的任何内容设置为导航栏而不是导航控制器:r

self.nvBar.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:self.nvBar.bounds cornerRadius:self.nvBar.layer.cornerRadius].CGPath;
        [self.nvBar.layer setShadowColor: [UIColor redColor].CGColor];
    [self.nvBar.layer setShadowOffset: CGSizeMake(0, 13)];
    [self.nvBar.layer setShadowRadius:3];
    [self.nvBar.layer setShadowRadius: 4.0];
    [self.nvBar.layer setShadowOpacity: 0.15];