2016-04-08 10 views
0

まず、すべてのコーディングをプログラムで実行しています。私の問題は、ナビゲーションバーに古典的なiOS「< back」を作成できないことです。私はストーリーボードを使用していないのでこれが疑わしいですか?スウィフトナビゲーションバーで "<戻る"を生成できませんプログラムで

これは私がナビゲーションバーを作成するために使用しています関数です。

// Makes a navigation Bar 
func makeNavigationBar(navigationBar: UINavigationBar, barTitle: String, forwardButton: Bool, backButton: Bool, page: UIViewController){ 
    // Create a navigation item with a title 
    let navigationItem = UINavigationItem() 
    navigationItem.title = barTitle 

    // Create left navigation item 
    if(backButton){ 
    let leftButton = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.Plain, target: page, action: "backClicked:") 
    // Create two buttons for the navigation item 
    navigationItem.leftBarButtonItem = leftButton 
    } 
    if(forwardButton){ 
    let rightButton = UIBarButtonItem(title: "Next", style: UIBarButtonItemStyle.Plain, target: page, action: "nextClickedClicked:") 
    // Create two buttons for the navigation item 
    navigationItem.rightBarButtonItem = rightButton 
    } 
    // Assign the navigation item to the navigation bar 
    navigationBar.items = [navigationItem] 
    //Adds the bar to the view 
    page.view.addSubview(navigationBar) 
} 

は、これは私がその機能に作っています呼び出しです:ここでは

let navigationBar = UINavigationBar(frame: CGRectMake(0, 0, self.view.frame.size.width, height/12)) 
creationFunctions.makeNavigationBar(navigationBar, barTitle: "", forwardButton: false, backButton: true, page: self) 

は「backClicked」機能です。

ありがとうございました。

+0

助けるホープ、target:page、action: "backClicked:") 'このコードを識別子付きのsegueで追加することができます。 – Lucho

+0

@Lucho識別子でプリフォームセグをしていないのであれば、私はまだそれを行うことができますか?私はプレゼントをしているだけです。 – DMop

+0

viewDidLoadに追加してみてください。 – Lucho

答えて

0

こんにちは、これは、カスタムの戻るボタンを作成し、それにnavigationControllerを追加するコードです。 ViewControllerクラスにこれらのメソッドがあります。 「戻る」、スタイル:.Plain

func addBackButton() { 
    let image = UIImage(named: "BackImage")!.imageWithRenderingMode(.AlwaysOriginal) 
    self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: image, style: .Plain, target: self, action: "backClicked:") 
} 

func backClicked (sender: UIBarButtonItem!){ 
    self.dismissViewControllerAnimated(true, nil); 
} 

は、それはあなたが、 `self.navigationItem.backBarButtonItem = UIBarButtonItem(タイトルのようなものを「プッシュ」され、コントローラに戻って値を設定する必要があります

+0

私は現在を使用しているし、彼らはスタックにない原因を却下。それでもプッシュとポップを使用できますか? – DMop

+0

もちろん、スタックしていないときは、私の間違いであるpopを使うことはできません。編集したコードをチェックしてください。 – kamwysoc

+0

なぜバック画像が必要ですか?デフォルトの戻る矢印を読み込まないでください。 – DMop

関連する問題