我在我的应用程序中使用自定义导航栏外观,并在 App Delegate 的application:didFinishLaunchingWithOptions:
方法中使用此代码:
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navBar.png"] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundColor:[UIColor clearColor]];
但是,当我呈现一个(以允许选择联系人以填充新电子邮件的收件人:字段)时,此外观会中断,因为由于系统设置的属性,在显示此视图时ABPeoplePickerNavigationController
系统会使用额外的高度(“选择要邮寄的联系人”)。UINavigationBar
prompt
UINavigationItem
解决方法是添加以下代码:
[[UINavigationBar appearanceWhenContainedIn:[ABPeoplePickerNavigationController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearanceWhenContainedIn:[ABPeoplePickerNavigationController class], nil] setBarStyle:UIBarStyleBlack];
看起来像这样:
但是,当您从初始视图中点击“组”按钮时,这个小技巧不起作用。由于超高的导航栏,它看起来仍然破碎:
任何想法该视图的控制器名称是什么(因此我可以应用与上述相同的排除),或解决此问题的另一种方法?