我正在返回「舊」xcode 7/swift 2項目。Xcode 8/Swift 3/ios 10導航欄的變化?
在我所有的導航欄中發生了一些奇怪的事情。
我有這樣的代碼:
@IBOutlet weak var outletCatalogNav: UINavigationItem!
//...
outletCatalogNav.title = "my title";
//...
outletCatalogNav.leftbarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.plain, target: self, action: #selector(ownCatalogBackButton));
//...
if (outletCatalogNav.leftbarButtonItem != nil) {
outletCatalogNav.leftbarButtonItem.leftBarButtonItem!.title = " back"
}
這則在這樣的代碼視圖切換結束:
TmpOldViewController.present(TmpNewViewController!, animated: TmpAnimate, completion: nil):
信息:由於歷史原因,我處理視圖控制器改變自己當成了iOS應用程序代碼是從完全不同的開發平臺,語言和環境轉換而來的。
無論如何,過去按鈕只會放在標題的左邊。現在在ios10模擬器中,至少它會呈現在下面(但仍然在左邊),這意味着我用於導航欄的原始高度已不再足夠(因爲它正在被其他控件覆蓋) - 在下面的屏幕截圖中,您可以看到這與左下角的藍色文字暗示。
約束是:
Navigation Bar.top = Top Layout Guide.bottom
TableViewCatalog.top = Navigation Bar.bottom
Navigation Bar.leading = leadingMargin - 20
trailingMargin = Navigation Bar.trailing - 20
是什麼改變了?我無法找到導航欄中發生變化的任何參考。作爲參考,因爲更改爲swift 3,我現在只針對ios8 +,所以我不需要ios7兼容解決方案。
您是否正在使用獨立的導航欄,然後(意思是,只有酒吧,沒有導航控制器)? – leanne
@leanne是的 - 我添加了更多的代碼和解釋,以防萬一它是相關的。 – Tom
另外幾個問題:1)你對導航欄有哪些其他限制? 2)在實際設備上運行時是否做同樣的事情? – leanne