2

我正在介绍CNContactPickerViewController(强烈引用 ivar):

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

但是,结果如下:

在此处输入图像描述

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

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

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

  • automaticallyAdjustsScrollViewInsets
  • definesPresentationContext
  • edgesForExtendedLayout
  • modalPresentationStyle
  • modalPresentationCapturesStatusBarAppearance

然而,什么都没有改变。它们都产生相同的结果。

4

2 回答 2

1

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

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

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

于 2018-01-23T13:20:58.930 回答
0
UINavigationBar.appearance().isTranslucent = false

在呈现控制器之前添加此行。

它对我有用!

于 2018-04-27T18:39:16.507 回答