5
- (void)viewDidLoad {
    [super viewDidLoad];

    self.title = @"这是个bug?->";
    self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:68/255.0 green:155/255.0 blue:235/255.0 alpha:1.0];
    self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:[UIColor whiteColor]};

    UIBarButtonItem *rightItem0 = [[UIBarButtonItem alloc] initWithTitle:@"我会变灰" style:UIBarButtonItemStylePlain target:self action:@selector(recordButtonClick)];
    [rightItem0 setTintColor:[UIColor whiteColor]];

    self.navigationItem.rightBarButtonItems = @[rightItem0];
}

- (void)recordButtonClick{
    [self.navigationController pushViewController:[NextViewController new] animated:YES];
}

右上角的 UIBarButtonItem 始终突出显示:

图片

为什么右上角的UIBarButtonItem“我会变灰”总是高亮显示?这是 iOS 11.2 中的错误吗?

4

1 回答 1

14

这是 iOS 11.2 中的错误吗?

是的。根视图控制器中的右栏按钮项存在 iOS 11 错误。当您推送到下一个视图控制器并弹回时,右侧的栏按钮项会变暗。

那是在您的截屏视频中看到的错误。在您的代码中,您将右栏按钮项的色调设置为白色。最初,它白色的。但是当你推然后弹出时,它不再是白色的。

我要做的是在视图控制器中解决这个问题viewWillAppear,如下所示:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationController?.navigationBar.tintAdjustmentMode = .normal
    self.navigationController?.navigationBar.tintAdjustmentMode = .automatic
}
于 2017-12-14T03:21:44.793 回答