这里的小问题。
我有一个UIBarButtonItem,它使segue到另一个表视图。当用户在这里完成时,我已经实现了退回segue回到第一个表视图。一切正常,除了在展开segue which can be seen here之后仍然选择/突出显示UIBarButtonItem这一事实。我不知道为什么会这样,我想知道如何解决这个问题?
提前致谢。
编辑:当我说它是嵌入式时,我的意思是this
答案 0 :(得分:4)
这是IOS 11.2中的一个错误,我解决了这个问题:
override func viewWillDisappear(_ animated: Bool) {
navigationController?.navigationBar.tintAdjustmentMode = .normal
navigationController?.navigationBar.tintAdjustmentMode = .automatic
}
答案 1 :(得分:0)
使用导航控制器可能会导致此问题。使用popToViewController可能会解决问题。只需将MyViewController替换为您想要的VievController。
let vc = self.navigationController?.viewControllers
for v in vc! {
print("viewcontroller is: \(v)")
if v as? MyViewController != nil {
self.navigationController?.popToViewController(v, animated: false)
}
}
答案 2 :(得分:0)
对于那些仍然试图弄清楚如何解决这个问题的人来说,这是一个快速的解决方法。转到你的unwind segue方法,在下面输入以下代码:
if self.navigationItem.rightBarButtonItem?.style == .plain {
self.navigationItem.rightBarButtonItem?.style = .done
}
if self.navigationItem.rightBarButtonItem?.style == .done {
self.navigationItem.rightBarButtonItem?.style = .plain
}
它可能不适用于所有情况,但它对我有用。 (我不知道它为什么会起作用)