Swift-ナビゲーションアイテムの戻るボタンを非表示にする方法


103

現在、2つのView Controllerがあります。私の問題は、2番目のビューコントローラーに移行した後、戻るボタンを非表示にする方法がわからないことです。私が見つけたほとんどの参照はObjective-Cにあります。Swiftでコーディングするにはどうすればよいですか?

Objective-Cで戻るボタンのコードを非表示にする

[self.navigationItem setHidesBackButton:YES animated:YES];

回答:


365

よると、ドキュメントのためにUINavigationItem

self.navigationItem.setHidesBackButton(true, animated: true);

30
酔いは無料です。
グレッグ

58
それはPaulw11 @あなたを怖がらせるかもしれませんが、プレーンな事実はグーグルに「スウィフト非表示のバックボタン」を入力すると、ここに来ている-私はちょうど行ったように-であるトン速く公式ドキュメント内のテキストの連を通じて耕しより。
ジョセフBeuysの母

4
戻るボタンの名前は最初のビューコントローラーで定義されていますが、それを非表示にするコードは2番目のビューコントローラー(ボタンを表示するもの)に実装する必要があることに気付くと興味深いかもしれません。
XLE_22

37

あなたが使用している場合UITabBarController

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    self.tabBarController?.navigationItem.hidesBackButton = true
}

私も同じですが、理由を知りたいのですが。受け入れられた回答とこのアプローチの違いは何か知っていますか?考えられる唯一のことは、継承モデルとナビゲーションバーの静的バージョンです。
Helmut Granda 2016

1
@HelmutGranda BrunoがTab Bar Controllerを使用していることに気付いた場合、それが違います。受け入れられた回答の場合、VCはおそらくナビゲーションコントローラーに組み込まれています。
cloudcal 2016

@cloudcal私はtabBarを使用していませんが、どちらの回答も機能しました。どちらも「戻る」ボタンを隠していました。viewControllerが画面上にある場合は動作が異なると思い、[戻る]ボタンを非表示にしたいと考えました。それでも、彼らは両方とも同じように行動しました。それらの違いを見つけることができませんでした。私はブルーノの答えが間違っていると言っています。純粋なnavigationControllerではなく、違いはありません。私はtabBarControllerを試していません
Honey

20

迅速

// remove left buttons (in case you added some)
 self.navigationItem.leftBarButtonItems = []
// hide the default back buttons
 self.navigationItem.hidesBackButton = true

navigationItem.hidesBackButton = trueが正しい答えであることは明らかです。左ボタンがある場合は、その可能性がありますが、これは間違いなく正しい答えであり、より完全な答えと考える必要があります。
truedat101 2018

self.navigationItem.hidesBackButton = true期待どおりに動作します。
Shahabuddin Vansiwala

9

これはUINavigationControllerクラスのドキュメントにもあります:

navigationItem.hidesBackButton = true



0

ここに回答のバージョンがあります

スウィフト5

ストーリーボードから使用できること:

// MARK: - Hiding Back Button

extension UINavigationItem {

    /// A Boolean value that determines whether the back button is hidden.
    ///
    /// When set to `true`, the back button is hidden when this navigation item
    /// is the top item. This is true regardless of the value in the
    /// `leftItemsSupplementBackButton` property. When set to `false`, the back button
    /// is shown if it is still present. (It can be replaced by values in either
    /// the `leftBarButtonItem` or `leftBarButtonItems` properties.) The default value is `false`.
    @IBInspectable var hideBackButton: Bool {
        get { hidesBackButton }
        set { hidesBackButton = newValue }
    }
}

ビューコントローラーのすべてのナビゲーション項目には、属性インスペクターの上部セクションにこの新しいプロパティがあります


0

それはSwift 5で私にとって魅力のように機能しました、それをviewDidLoad()に追加するだけです

self.navigationItem.setHidesBackButton(true, animated: true)

-4

ここに画像の説明を入力してください

属性インスペクタに移動し、[ナビゲーションバーを表示]チェックボックスをオフにして、戻るボタンを非表示にします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.