2016-09-14 27 views
0

我有一個導航欄,這是從另一個視圖控制器模態呈現因此不會顯示返回項目,如何設置導航欄的返回項目

我需要跨越溶解到第二視圖控制器,並投入了導航欄上沒有放置第一個視圖控制器,在第二個視圖控制器的導航欄上後退按鈕應該看起來完全像系統後退按鈕。

回答

0

當您推送ViewController時,後面的項目會自動出現。當你以模態方式呈現它時,你會在初始導航控制器之外做它,因此它的導航會被新的隱藏。

版本與建議的解決方案:將第一個UIViewController嵌入到UINavigationViewController中,並推動第二個,而不是以模態方式呈現它。

+0

這似乎不是一個解決方案,也許你應該對此有何評論? –

+0

現在它是一個解決方案。後退按鈕是屬於導航控制器的控件,如果您不使用導航,則必須自行重新創建後退按鈕。 – tonik12

+0

是的,這是一個解決方案,但我需要通過模態顯示交叉溶解動畫 –

0

如果您有導航欄,你需要自定義後退按鈕,你可以這樣添加:

let button = UIBarButtonItem(title: "Back Title", style: UIBarButtonItemStyle.Plain, target: self, action: #selector(someMethod)) 
self.navigationItem.leftBarButtonItem = button 

而在你的選擇,你可以關閉你目前的viewController或調用一些其他的背法

編輯

如果需要使用非標準推動轉變作風一些自定義動畫,你可以做下一個:

例如,在故事板製作的viewController與SecondViewController ID

在你的過渡的操作方法作一些這樣的:

func showSecondViewController() { 
    guard navigationController != nil else { 
     return 
    } 
    guard let secondViewController = storyboard?.instantiateViewControllerWithIdentifier("SecondViewController") else { 
     return 
    } 
    navigationController!.pushViewController(secondViewController, animated: false) 
    UIView.transitionWithView(navigationController!.view, duration: 1, options: .TransitionCrossDissolve, animations: nil, completion: nil) 
} 
+0

是的,這增加了一個按鈕,但它不像系統'

+0

@BrightFuture Show模式並不意味着存在標準的後退按鈕。在這種情況下,您需要一個簡單地關閉窗口的按鈕。 –

+0

我需要通過模態顯示交叉溶解動畫,如果使用推送,我可以更改默認動畫嗎? –

相關問題