2017-03-13 94 views
0

我們的應用程序有一個帶有圖像的UINavigationBar。當我們繼續(推)到另一個屏幕,然後點擊後退按鈕,當導航欄上的圖像重新出現時,它從左到右看起來會動起來。這有點分散注意力。你如何刪除這個後退按鈕動畫?iOS:刪除UINavigationBar動畫

我們嘗試改變賽格動畫設置,但這改變了推動畫而不是後動畫。

我們的導航欄代碼:

let logoImage:UIImage = UIImage(named: "ABC")! 
    viewController.navigationItem.titleView = UIImageView(image: logoImage) 
+0

如果你知道objective-c只是一點這個答案可能會幫助你[如何防止UINavigationBar動畫](http://stackoverflow.com/a/8602982/6689101) – zombie

回答

1

想通了這一點水龍頭的方法在很大程度上是由於這個答案https://stackoverflow.com/a/8602982/47281

創建自定義導航欄和覆蓋popItem

class MyNavigationBar: UINavigationBar { 
    override func popItem(animated: Bool) -> UINavigationItem? { 
     return super.popItem(animated: false) 
    } 
} 

通過故事板進入MyNavigationBar爲我們的導航器的導航欄類:

enter image description here

注意我沒有重載NavigationController popViewControllerAnimated爲在相關答案中。

+0

感謝您的回答。爲什麼這不工作,如果我用pushItem做同樣的事情? – Deivuh

-1

你可以這樣做:

override func viewDidLoad() { 
    super.viewDidLoad() 
    let logoImage: UIImage = UIImage(named: "ABC")! 
    self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: logoImage, style: .plain, target: self, action: #selector(backBtnPressed)) 
} 

然後創建處理按鈕

func backBtnPressed(){ 
    _ = self.navigationController?.popViewController(animated: false) 
} 
+0

這不是你如何更換後退按鈕 – Yariv