Swift - Bagaimana cara menyembunyikan tombol kembali di item navigasi?

103

Saat ini saya memiliki dua pengontrol tampilan. Masalah saya adalah saya tidak tahu cara menyembunyikan tombol kembali setelah beralih ke pengontrol tampilan kedua. Sebagian besar referensi yang saya temukan ada di Objective-C. Bagaimana cara mengkodekannya di Swift?

Sembunyikan kode tombol kembali di Objective-C

[self.navigationItem setHidesBackButton:YES animated:YES];
Mohammad Nurdin
sumber

Jawaban:

366

Menurut dokumentasi untuk UINavigationItem:

self.navigationItem.setHidesBackButton(true, animated: true);
Paulw11
sumber
30
snarkiness ini gratis.
Greg
58
Mungkin menakut-nakuti Anda @ Paulw11, namun fakta yang jelas adalah mengetik "Swift tombol hide kembali" ke Google dan datang ke sini - seperti saya lakukan - adalah ton lebih cepat daripada membajak melalui rim teks dalam dokumentasi resmi.
Joseph Beuys 'Mum
4
Sementara nama tombol kembali ditentukan di pengontrol tampilan pertama, mungkin menarik untuk memperhatikan bahwa kode untuk menyembunyikannya harus diterapkan di pengontrol tampilan kedua (yang menampilkan tombol).
XLE_22
38

Jika Anda menggunakan UITabBarController:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    self.tabBarController?.navigationItem.hidesBackButton = true
}
Bruno Cunha
sumber
Sama untuk saya, namun saya ingin mengerti mengapa. Adakah yang tahu apa perbedaan antara jawaban yang diterima dan pendekatan ini? Satu-satunya hal yang dapat saya pikirkan adalah model warisan vs versi statis dari bilah navigasi.
Helmut Granda
1
@HelmutGranda Jika Anda memperhatikan bahwa Bruno menggunakan Pengontrol Tab Bar, itulah perbedaannya. Dalam kasus jawaban yang diterima, VC kemungkinan tertanam di pengontrol navigasi.
cloudcal
@cloudcal Saya tidak menggunakan tabBar, namun kedua jawaban berfungsi. Keduanya menyembunyikan tombol kembali. Saya pikir mereka akan berperilaku berbeda jika viewController ada di layar dan kemudian saya ingin menyembunyikan tombol kembali. Namun lagi-lagi mereka berdua melakukan hal yang sama. Saya tidak dapat menemukan perbedaan di antara mereka. Saya mengatakan jawaban Bruno salah. Sebaliknya untuk navigationController murni itu tidak membuat perbedaan. Saya belum mencoba tabBarController
Honey
20

Cepat

// remove left buttons (in case you added some)
 self.navigationItem.leftBarButtonItems = []
// hide the default back buttons
 self.navigationItem.hidesBackButton = true
Marwen Doukh
sumber
Jelas bahwa navigationItem.hidesBackButton = true adalah jawaban yang benar. Jika ada tombol kiri, yang mungkin merupakan kasusnya, maka ini pasti jawaban yang benar, dan harus dianggap sebagai jawaban yang lebih lengkap.
truedat101
self.navigationItem.hidesBackButton = trueIni bekerja seperti yang diharapkan.
Shahabuddin Vansiwala
9

Ini juga ditemukan dalam dokumentasi kelas UINavigationController:

navigationItem.hidesBackButton = true
Amiru Homushi
sumber
6

Masukkan ke dalam viewDidLoadmetode

navigationItem.hidesBackButton = true 
Harjeet Singh
sumber
1

Anda dapat mencoba dengan kode di bawah ini

override func viewDidAppear(_ animated: Bool) {
    self.navigationController?.isNavigationBarHidden = true
}
Dilip Jangid
sumber
Ini bukanlah jawaban untuk pertanyaan ini.
Boris Nikolic
0

Ini adalah versi jawaban dalam

Cepat 5

yang dapat Anda gunakan dari storyboard:

// 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 }
    }
}

Setiap item navigasi dari pengontrol tampilan akan memiliki properti baru ini di bagian atas inspektur atribut

Stoyan
sumber
0

Itu berhasil bagi saya di Swift 5 seperti pesona, cukup tambahkan ke viewDidLoad () Anda

self.navigationItem.setHidesBackButton(true, animated: true)
Matan
sumber
-4

masukkan deskripsi gambar di sini

Pergi ke inspektur atribut dan hapus centang tampilkan Bilah Navigasi untuk menyembunyikan tombol kembali.

neeraj sachdeva
sumber