单击它时,UIBarButtonItem将始终突出显示

ame*_*017 5 objective-c ios ios11 ios11.2

- (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];
}
Run Code Online (Sandbox Code Playgroud)

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

图片

为什么右上角的UIBarButtonItem"我会变灰"总是突出显示?这是iOS 11.2中的错误吗?

mat*_*att 13

这是iOS 11.2中的错误吗?

是.根视图控制器中的右侧栏按钮项有一个iOS 11错误.当您按下下一个视图控制器并弹回时,右侧的条形按钮项目将变暗.

这是你的截屏视频中看到的错误.在您的代码中,您将右侧的条形按钮项目的色调颜色设置为白色.最初,它白色的.但是当你推动然后弹出时,它不再是白色的.

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

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