Ios UISplitViewController上的后退按钮闪烁->;细节段

Ios UISplitViewController上的后退按钮闪烁->;细节段,ios,uinavigationcontroller,uisplitviewcontroller,Ios,Uinavigationcontroller,Uisplitviewcontroller,我有一个iPhone应用程序,我正在努力使它具有通用性 我添加了一个拆分视图控制器,它的主视图和详细视图VCs都嵌入在导航控制器中,因此当它们同时可见时,导航栏将显示在这两个控制器上,我可以添加displayModeButtonItem()和所有 问题是,在iPhone上,当一次只能看到一个VCs时,嵌入细节VC的额外导航控制器将导致“显示细节”序列上的“后退”按钮闪烁 差别是微妙的,但它真的让我烦恼 以下是在没有额外导航控制器的情况下的运行方式: 以下是额外导航控制器的工作原理: 在GIF

我有一个iPhone应用程序,我正在努力使它具有通用性

我添加了一个拆分视图控制器,它的主视图和详细视图VCs都嵌入在导航控制器中,因此当它们同时可见时,导航栏将显示在这两个控制器上,我可以添加
displayModeButtonItem()
和所有

问题是,在iPhone上,当一次只能看到一个VCs时,嵌入细节VC的额外导航控制器将导致“显示细节”序列上的“后退”按钮闪烁

差别是微妙的,但它真的让我烦恼

以下是在没有额外导航控制器的情况下的运行方式:

以下是额外导航控制器的工作原理:

在GIF中,它看起来不像在实际的iPhone中那么糟糕,但你可以看到不同之处。这就像使用额外的导航控制器时,返回箭头会自动显示,然后“Reading”标签就会显示出来。另一方面,如果没有额外的导航控制器,返回箭头和“阅读”标签会同时显示(注意,你会看到的,哈哈)

为了解决这个问题,我尝试更改segue,这样当点击主VC中的表视图行时,我可以直接转到实际的细节VC,绕过它的导航控制器。起初这似乎是可行的,但它导致了其他问题。例如,如果我在iPad上,我将其他VC推到细节VC上,然后在主VC上点击另一行,那么即使我在
didSelectRowatineXpath
中明确告诉细节VC,细节VC也不会跳回其根VC

我在这里做错了什么,还是这只是一个
UISplitViewController
怪癖?有人知道如何修复或解决它吗

谢谢

好吧,我想出来了

当问题发生时,我在VC的
viewDidLoad
中详细介绍了这一点:

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem()
    self.navigationItem.leftItemsSupplementBackButton = true
}
我注意到问题是由设置
leftBarButtonItem
引起的。所以我把它改成了这个,现在它工作得很好:

override func viewDidLoad() {
    super.viewDidLoad()
    if self.splitViewController?.collapsed == false {
        self.navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem()
        self.navigationItem.leftItemsSupplementBackButton = true
    }
}
好的,我知道了

当问题发生时,我在VC的
viewDidLoad
中详细介绍了这一点:

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem()
    self.navigationItem.leftItemsSupplementBackButton = true
}
我注意到问题是由设置
leftBarButtonItem
引起的。所以我把它改成了这个,现在它工作得很好:

override func viewDidLoad() {
    super.viewDidLoad()
    if self.splitViewController?.collapsed == false {
        self.navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem()
        self.navigationItem.leftItemsSupplementBackButton = true
    }
}