展开segue后仍然选择/突出显示UIBarButtonItem

时间:2017-12-07 22:31:16

标签: ios swift uibarbuttonitem

这里的小问题。

我有一个UIBarButtonItem,它使segue到另一个表视图。当用户在这里完成时,我已经实现了退回segue回到第一个表视图。一切正常,除了在展开segue which can be seen here之后仍然选择/突出显示UIBarButtonItem这一事实。我不知道为什么会这样,我想知道如何解决这个问题?

提前致谢。

编辑:当我说它是嵌入式时,我的意思是this

3 个答案:

答案 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
    }

它可能不适用于所有情况,但它对我有用。 (我不知道它为什么会起作用)