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

时间:2017-12-14 03:01:56

标签: ios objective-c 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];
}

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

image

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

1 个答案:

答案 0 :(得分:13)

  

这是iOS 11.2中的错误吗?

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

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

我所做的是在视图控制器的override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationController?.navigationBar.tintAdjustmentMode = .normal self.navigationController?.navigationBar.tintAdjustmentMode = .automatic } 中解决此问题,如下所示:

public function actionIndex()
{
    $searchModel = new StudentsSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

    return $this->render('index', [
        'searchModel' => $searchModel,
        'dataProvider' => $dataProvider,
    ]);
}