CNContactPickerViewController内容会渗透到搜索栏和状态栏

时间:2018-01-12 17:54:15

标签: cocoa-touch uiviewcontroller cncontactpicker

我提出CNContactPickerViewController(强烈引用的ivar):

contactsViewController = [[CNContactPickerViewController alloc] init];
contactsViewController.delegate = self;
[self presentViewController:contactsViewController animated:YES completion:nil];

但是,结果如下:

enter image description here

在遇到问题后,我尝试更改搜索栏的外观(不确定我应该设置什么,只是尝试):[[UISearchBar appearanceWhenContainedInInstancesOfClasses:@[[CNContactPickerViewController class]]] setBarTintColor:[UIColor redColor]];但它没有做任何事情。

为什么会发生这种情况,我该如何解决?

更新:我已在联系人视图控制器上尝试了以下各种组合:

  • automaticallyAdjustsScrollViewInsets
  • definesPresentationContext
  • edgesForExtendedLayout
  • modalPresentationStyle
  • modalPresentationCapturesStatusBarAppearance

然而,没有根本没有变化。它们都会产生相同的结果。

2 个答案:

答案 0 :(得分:0)

我在其他一些删除视图控制器上也遇到了同样的问题。

我有一些代码在app启动时使用代理设置外观,看起来很可疑。我已禁用在应用启动时设置外观代理的代码,问题就消失了。经过调查,我发现了罪魁祸首:

[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];我正在使用它来使导航栏背景在某些地方完全透明,尽管这是旧设计遗留下来的东西,并不需要。我删除了这条线,问题就消失了。

答案 1 :(得分:0)

UINavigationBar.appearance().isTranslucent = false

在展示控制器之前添加此行。

它对我有用!