Teks tombol kembali aneh yang cepat di iphone plus

masukkan deskripsi gambar di sini

Silakan lihat tangkapan layar saya, teks "Kembali" berwarna biru selalu muncul di iPhone plus (6s plus, 7 plus untuk simulator dan perangkat nyata). Itu tidak muncul di layar iPhone yang lebih kecil. Saya mencoba banyak cara untuk menyembunyikan/mengubahnya dari pengontrol sekarang/sebelumnya tetapi tidak berhasil.

Jadi mengapa ini berfungsi pada iPhone yang lebih kecil tetapi tidak pada iPhone plus?

Adakah yang bisa membantu saya:(. Terima kasih.

Ini kodenya:

@IBAction func filter(_ sender: Any) {
    let view:FilterViewController = self.storyboard?.instantiateViewController(withIdentifier: "FilterViewController") as! FilterViewController
    view.superVC = self
    view.currentFilter = currentFilter
    self.setLeftCloseNavigation()
    self.navigationController?.pushViewController(view, animated: true)
}

func setLeftCloseNavigation(){
    self.navigationController?.navigationBar.backgroundColor = UIColor.clear
    self.navigationController?.navigationBar.isTranslucent = true
    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
    self.navigationController?.navigationBar.layer.mask = nil

    self.navigationController?.navigationBar.backIndicatorImage = UIImage(named: "icon_close")?.withRenderingMode(.alwaysOriginal)
    self.navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "icon_close")?.withRenderingMode(.alwaysOriginal)
    navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
}

Dan inilah viewDidLoad di pengontrol yang didorong:

override func viewDidLoad() {
    super.viewDidLoad()
    statusBar = UIColor.black
    setResetNavigation() }

func setResetNavigation(){
    navigationItem.hidesBackButton = false

    let skipButton = UIButton(frame: CGRect(x: 0, y: 0, width: 70, height: 30))
    skipButton.setTitle("Reset all".localized(), for: .normal)
    skipButton.setTitleColor(UIColor.black, for: .normal)
    skipButton.titleLabel?.font = UIFont(name: "HJGothamMedium", size: 16)
    skipButton.addTarget(self, action: #selector(resetAllClicked), for: .touchUpInside)
    let skip = UIBarButtonItem(customView: skipButton)
    navigationItem.rightBarButtonItem = skip
}

Ini adalah hierarki tampilan

masukkan deskripsi gambar di sini


person bui manhcuong    schedule 25.04.2017    source sumber
comment
dapatkah Anda menunjukkan beberapa kode   -  person Bhupat Bheda    schedule 25.04.2017
comment
periksa tampilan Anda di storyboard dan hapus tombol itu.   -  person KKRocks    schedule 25.04.2017
comment
apakah ini presentViewController?   -  person KKRocks    schedule 25.04.2017
comment
tidak @KKRocks, ini adalah pengontrol tampilan setelah push   -  person bui manhcuong    schedule 25.04.2017
comment
@Bhupat Saya menambahkan beberapa kode   -  person bui manhcuong    schedule 25.04.2017


Jawaban (6)


Tambahkan fungsi ini:

   override func viewDidAppear(_ animated: Bool) {
          setResetNavigation()
          self.navigationController?.navigationBar.backItem?.title = ""
    }

bilah navigasi di iPhone 7S

person Harshil Kotecha    schedule 25.04.2017
comment
terima kasih tapi saya tidak ingin menghapusnya, hanya ingin menghapus teksnya - person bui manhcuong; 25.04.2017
comment
ya, saya mencobanya juga, ini berfungsi pada iPhone yang lebih kecil, tetapi tidak pada iPhone plus :( - person bui manhcuong; 25.04.2017
comment
sebentar. saya mencoba ini dalam 7 detik - person Harshil Kotecha; 25.04.2017
comment
ya saya menggunakan tata letak otomatis, ini FilterViewController, didorong dari pengontrol yang merupakan anak dari tabBarController - person bui manhcuong; 25.04.2017
comment
bisakah Anda memberi saya TeamViewer? - person Harshil Kotecha; 25.04.2017
comment
menurut saya ada masalah di Tata Letak otomatis Anda - person Harshil Kotecha; 25.04.2017
comment
apa yang terjadi jika Anda memeriksa tombol iPhone 7 juga bersembunyi? - person Harshil Kotecha; 25.04.2017
comment
Saya mengundang Anda di hangout, saya juga di kantor - person bui manhcuong; 25.04.2017

coba ini

 self.navigationItem.hidesBackButton = true

Atau Periksa storyboard Anda, itu akan tetap ada

person Lalit kumar    schedule 25.04.2017
comment
terima kasih tapi saya tidak ingin menyembunyikannya, hanya ingin menghapus teksnya - person bui manhcuong; 25.04.2017

Gunakan baris di bawah ini untuk menghapus teks

navigationController?.navigationBar.topItem?.title = ""
person harshal jadhav    schedule 25.04.2017
comment
Terima kasih, saya mencoba tetapi tidak berhasil :(. Saya menempatkan ini di pengontrol sebelumnya (sebelum Push) dan di pengontrol yang ada (viewdidload, viewdidappear) - person bui manhcuong; 25.04.2017
comment
apa itu tanda silang.jika itu tombol lihat apakah anda salah memasukkan nama Kembali ke tombol itu beserta gambar tanda silang - person harshal jadhav; 25.04.2017

Anda dapat memeriksa hierarki UI Anda dan jika ditemukan tampilan terkait, hapus tampilan tersebut:

Anda juga dapat memanggil debugger tampilan dengan memilih View UI Hierarchy dari menu opsi tampilan proses di navigator debug, atau dengan memilih Debug > View Debugging > Capture View Hierarchy.

person KKRocks    schedule 25.04.2017
comment
Silakan lihat tangkapan layar hierarki tampilan yang baru saja saya tambahkan - person bui manhcuong; 25.04.2017

Untuk menyembunyikan teks belakang, Anda perlu menyetel judul item navigasi ke karakter spasi pada pengontrol tampilan yang mendorong pengontrol tampilan yang disajikan:

self.navigationItem.title = " "

Sadarilah Anda harus mengaturnya di pengontrol tampilan sebelumnya dan bukan di sebagian besar pengontrol tampilan teratas. Anda juga harus menetapkan karakter spasi dan bukan string kosong !!!

Anda juga dapat melakukan ini langsung di storyboard

masukkan deskripsi gambar di sini

person Zell B.    schedule 25.04.2017

Dari kode di bawah ini Anda dapat mengatur warna teks backButton ke warna apa pun yang Anda inginkan. Anda cukup mengatur backButton ke clear textColor. Jadi, Itu tidak akan terlihat saat muncul.

 UIBarButtonItem.appearance(whenContainedInInstancesOf: [UINavigationBar.classForCoder() as! UIAppearanceContainer.Type]).setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.clear], for: .normal)

Pembaruan: Jika Anda ingin melakukan pendekatan yang berbeda. Periksa postingan ini Bagaimana cara menyesuaikan simbol navigasi kembali dan teks navigasi kembali? dan jawaban diterima.

person Joe    schedule 25.04.2017