1
在我的應用程序中,我在標籤欄控制器中有一個分離視圖控制器,而主視圖控制器嵌入在導航控制器內。最初,詳細視圖控制器只是一個空白的視圖控制器。現在,從1列分離爲2時,處於主位置的視圖控制器奇怪地不再延伸到頂部和底部條之下。酒吧是半透明的,所以你應該能夠看到導航欄和標籤欄中的紅色。我已經將問題縮小到splitViewController(_:separateSecondaryFrom:)
,我用它將詳細信息嵌入到導航控制器中。我不明白爲什麼這會導致主要的這種行爲。這個方法的實現有什麼不正確? 主視圖控制器不在分割視圖控制器中的頂部/底部酒吧下延伸
func splitViewController(_ splitViewController: UISplitViewController, separateSecondaryFrom primaryViewController: UIViewController) -> UIViewController? {
//in the case where it's separating into two, we want to embed the detail in a navigation controller
let primaryNavController = primaryViewController as! UINavigationController
let detailController: UIViewController
if primaryNavController.viewControllers.count > 1 {
detailController = primaryNavController.viewControllers[1]
} else {
detailController = ViewController()
}
return UINavigationController(rootViewController: detailController)
}
I've uploaded a sample project here.
奇怪...它的工作原理。也可以執行'setNeedsLayout()'和'layoutIfNeeded()'。嗯,時間來提交錯誤報告。 – Joey
是的,任何可能觸發導航視圖層次結構重新繪製的事件都應該這樣做。 –