由于某些原因,我无法在iOS6上从UINavigationBar移除阴影。为什么这不起作用?我尝试了以下方法:

if ([[UINavigationBar appearance]respondsToSelector:@selector(setShadowImage:)]){
    [[UINavigationBar appearance]setShadowImage:[[UIImage alloc] init]];
}
if ([[UINavigationBar class]respondsToSelector:@selector(setShadowImage:)]){
    [[UINavigationBar appearance]setShadowImage:[[UIImage alloc] init]];
}

最佳答案

您必须在NavigationBar实例上进行工作...

if ([navigationBarInstance respondsToSelector:@selector(setShadowImage:)]){
    [navigationBarInstance setShadowImage:[[UIImage alloc] init]];
}

编辑:
如果您出于某种原因确实需要对 class 进行检查。这将起作用:
if ([UINavigationBar instancesRespondToSelector:@selector(setShadowImage:)]) {
}

07-27 21:56