当我点击 UIBarButtonItem 时它会一直高亮

UIBarButtonItem will be always highlight when I click it

- (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 中的错误吗?

Is it a bug in iOS 11.2?

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

这是您在截屏视频中看到的错误。在您的代码中,您将右栏按钮项目的色调颜色设置为白色。最初,它 白色。但是当你push然后pop的时候,就不是白色了

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

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationController?.navigationBar.tintAdjustmentMode = .normal
    self.navigationController?.navigationBar.tintAdjustmentMode = .automatic
}