Bagaimana cara menyesuaikan tombol kembali navigasi di iOS 7 dan di atasnya tanpa judul? (Yaitu dengan panah saja)
self.navigationItem.leftBarButtonItem = self.editButtonItem;
Saya hanya ingin tahu apakah mereka memiliki self.backButtonItem;
ATAU
sesuatu seperti ini?
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemBACK
target:self action:@selector(back)];
Jawaban:
Ini sebenarnya cukup mudah, inilah yang saya lakukan:
Tujuan C
Cepat 2
Cepat 3
Letakkan baris ini di controller tampilan yang mendorong ke stack ( controller tampilan sebelumnya ). Tombol back view controller yang baru ditekan sekarang akan menampilkan apa pun yang Anda masukkan untuk initWithTitle, yang dalam hal ini adalah string kosong.
sumber
prepareForSegue
controller tampilan saya dan bekerja dengan sempurna.Saya menemukan cara mudah untuk membuat tombol punggung saya dengan panah tunggal iOS.
Mari kita tambahkan bahwa Anda memiliki pengontrol navigasi menuju ke ViewA dari ViewB. Di IB, pilih bilah navigasi ViewA, Anda akan melihat opsi ini: Judul, Prompt dan Tombol Kembali.
Opsi bilah navigasi ViewA
Caranya adalah memilih judul tombol kembali takdir pengendali Anda (ViewB) di opsi pengendali tampilan sebelumnya (Lihat A). Jika Anda tidak mengisi opsi "Tombol Kembali", iOS akan menempatkan judul "Kembali" secara otomatis, dengan judul pengontrol tampilan sebelumnya . Jadi, Anda perlu mengisi opsi ini dengan satu ruang.
Isi ruang di opsi "Tombol Kembali"
Hasil:
sumber
Back Button
ditetapkan untuk karakter spasi tunggal (yaitu baik ViewA dan ViewB)Cukup gunakan gambar!
OBJ-C :
SWIFT 4 :
Icon-Back.png
[email protected]
[email protected]
sumber
navigationController?.interactivePopGestureRecognizer?.delegate = self
melakukan trik untuk menjaga gerakan menggesek kembaliiOS7 memiliki aturan antarmuka baru, jadi lebih baik untuk menjaga setidaknya panah belakang saat Anda mendorong UIView. Sangat mudah untuk mengubah teks "kembali" secara terprogram. Cukup tambahkan kode ini sebelum mendorong tampilan (Atau mempersiapkanForSegue jika Anda menggunakan StoryBoards):
Ini akan mengubah teks "Kembali" default, tetapi akan menjaga panah kembali gaya iOS7. Anda juga dapat mengubah warna rona untuk panah belakang sebelum mendorong tampilan:
Semoga ini bisa membantu Anda!
sumber
Tidak banyak yang perlu Anda lakukan. Anda dapat mencapai hal yang sama melalui storyboard itu sendiri.
Buka saja pengontrol Navigasi root dan beri ruang. Ingat bukan untuk pengontrol yang Anda inginkan tombol kembali tanpa judul, tetapi ke pengontrol navigasi root.
sumber
Sementara jawaban Kyle Begeman benar-benar berhasil, cukup menjengkelkan memiliki kode ini di setiap pengontrol tampilan. Saya akhirnya dengan
UINavigationItem
kategori sederhana . Waspadalah, ini naga! Maaf, maksud saya, berputar-putar:sumber
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-1000, -1000) forBarMetrics:UIBarMetricsDefault];
( sumber ) - mungkin sedikit kurang elegan, tetapi swizzling terasa seperti berlebihanUINavigationItem
metode sendiri, tidak ada warisan yang terlibat. Dan_cmd
sangat tidak mungkin untuk terlibat dalam rajin dan giat. Bagaimanapun juga, itu poin yang bagus. Jadi, Anda semua, jika Anda memiliki salah satu dari banyak pembantu yang berputar-putar di proyek Anda, pastikan Anda menggunakannya di sini juga.EDIT: 2014-04-09: Ketika saya mendapatkan reputasi, saya merasa menyesal karena saya tidak menggunakan trik ini lagi. Saya merekomendasikan jawaban Kyle. Juga pemberitahuan bahwa
self
dariself.navigationItem.backBarButtonItem
tidak controller tampilan tombol kembali ditampilkan, tapi sebelumnya pengendali tampilan menjadi kembali.Jika Anda tidak perlu memiliki teks judul untuk pengontrol tampilan sebelumnya, cukup isi judul dengan string kosong;
Ini akan mencegah menampilkan "kembali" dengan chevron pada pengontrol tampilan yang didorong.
EDIT: Bahkan Anda menggunakan teks judul non-kosong, mengatur judul pengontrol tampilan sebelumnya dalam
viewWillAppear:
karya kecuali judul dapat berkedip dalam berkedip ketika pengontrol tampilan muncul. Saya pikir "Aplikasi twitter" tampaknya melakukan peretasan yang lebih halus untuk menghindari flicker.sumber
Ini berfungsi, tetapi itu akan menghapus judul item sebelumnya, bahkan jika Anda kembali ke sana:
Cukup setel properti ini pada
viewDidLoad
View Controller yang didorong.sumber
viewWillAppear
sehingga selalu diatur dengan benar.Ini adalah bagaimana saya melakukannya dan yang paling sederhana, berfungsi dan cara yang paling jelas untuk melakukannya.
Ini berfungsi jika menanamkan
Navigation Controller
Cepat 3
Di
viewDidLoad
Saya menambahkan ini ke View Controller Anda ingin tombol kembali menjadi hanya panah.Perbedaannya dengan jawaban @Kyle Begeman adalah bahwa Anda memanggil ini pada pengontrol tampilan yang Anda inginkan tombol kembali hanya panah, bukan pada pengontrol tampilan tumpukan mendorong.
sumber
Anda tidak memiliki akses ke backButtonItem navigasi dengan cara yang Anda inginkan, Anda perlu membuat tombol kembali sendiri seperti di bawah ini:
Dan tentu saja:
sumber
Target: menyesuaikan semua tombol kembali
UINavigationBar
ke ikon putihLangkah-langkah: 1. dalam metode "didFinishLaunchingWithOptions" di AppDelete :
2.dalam
viewDidLoad
metodeViewController
kelas super umum :sumber
SWIFT 4
Bagi mereka yang ingin membuat tombol kembali kustom serta judulnya dihapus, gunakan kode berikut di dalam pengontrol tampilan yang mendorong yang baru:
Untuk penggunaan yang lebih universal, lakukan hal berikut:
Buat fungsi universal sebagai berikut:
Kemudian gunakan dalam tampilan pengontrol sebagai berikut:
sumber
Retasan sederhana dari iOS6 juga berfungsi di iOS7:
Sunting: Jangan gunakan peretasan ini. Lihat komentar untuk detailnya.
sumber
Anda bisa menggunakan ini. Ini berfungsi sempurna bagi saya dengan hanya menambahkan
UIButton
sebagai custumview untukUIBarButtonItem
.Coba Kode Di Bawah Ini
sumber
Buat
UILabel
dengan judul yang Anda inginkan untuk pengontrol tampilan root dan tetapkan ke pengontrol tampilannavigationItem.titleView
.Sekarang atur judul menjadi string kosong dan pengontrol tampilan berikutnya yang Anda tekan akan memiliki tombol kembali tanpa teks.
sumber
sumber
Semua jawaban tidak menyelesaikan masalah. Tidak dapat diterima untuk mengatur judul tombol kembali di setiap pengontrol tampilan dan menambahkan offset ke judul masih membuat judul Pengendali Tampilan berikutnya bergeser ke kanan.
Berikut adalah metode menggunakan metode swizzling, cukup buat ekstensi baru ke UINavigationItem
sumber
Saya menerapkan kode berikut di viewDidLoad dan berfungsi:
Hanya untuk memperbarui saya menggunakan Ikon Vektor
sumber
Anda dapat subkelas UINavigationController, menetapkan dirinya sebagai delegate, dan mengatur backBarButtonItem dalam metode delegate
navigationController:willShowViewController:animated:
sumber
Setel kembali judul kosong
Ubah kembali gambar
sumber
Saya telah menggunakan solusi ini sejak iOS 5 atau lebih tanpa masalah. Saya membuat fungsi utilitas yang saya panggil di pengontrol tampilan saya. Anda harus melakukannya di viewDidLoad atau titik mana pun setelah itu.
Dalam beberapa kasus, item navigasi mungkin sudah ada, dalam kasus lain itu perlu dibuat. Akun ini untuk kedua kasus tersebut tanpa mengacaukan judul item navigasi. Ini memungkinkan Anda untuk menghapus judul hanya dengan lewat
@""
.sumber
Satu-satunya cara yang berhasil bagi saya adalah:
MEMPERBARUI:
Ketika saya mengubah bendera animasi segue menjadi true (Itu salah sebelumnya), satu-satunya cara yang bekerja untuk saya adalah:
sumber
Jika Anda memiliki dua ViewController (FirstVC, SecondVC) Embed di Navigasi Controller, dan Anda ingin hanya ada panah kembali di SecondVC.
Anda dapat mencoba ini di ViewDidLoad FirstVC
Kemudian ketika Anda mendorong ke SecondVC, Anda akan melihat hanya ada panah kembali
sumber
Jika Anda mengatur tintColor Of NavigationBar, tambahkan gambar tombol kembali kustom tanpa judul yang warna tint akan mencerminkan warna gambar. Silakan ikuti tautan apple documentaion ini.
https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/UIKitUICatalog/index.html#//apple_ref/doc/uid/TP40012857-UIView-SW7
sumber
Periksa jawaban ini
Bagaimana cara mengubah nama tombol kembali UINavigationController?
atur
title
teksstring
dengan satu ruang kosong seperti di bawah iniTidak memiliki reputasi yang cukup untuk menambahkan komentar :)
sumber
Saya menulis ekstensi untuk mempermudah ini:
sumber
Anda dapat mengubah judul menjadi @ "" dari ViewController saat ini di viewWillDisappear, dan ketika akan ditampilkan lagi, atur ulang judul ke apa pun sebelumnya.
sumber
Dalam metode prepForSegue: pada ViewController pertama Anda, Anda menetapkan judul view ke @ "", jadi ketika tampilan berikutnya didorong, ia akan menampilkan judul ViewController sebelumnya yang akan menjadi @ "".
Satu-satunya masalah dengan ini adalah ketika Anda menekan tombol kembali tampilan Anda sebelumnya tidak akan memiliki judul, jadi Anda dapat menambahkannya lagi di viewWillAppear:
Saya tidak terlalu suka solusi ini tetapi ini berhasil dan saya tidak menemukan cara lain untuk melakukannya.
sumber
Untuk menambah jawaban Thomas C di atas, terkadang menempatkan satu ruang tidak berfungsi dan Anda harus terus menambahkan ruang.
Anda akan tahu bahwa Anda berhasil ketika Anda melihat "Item Tombol Bar -" di bawah "Item Navigasi". Itu ada di Document Outline (Editor-> Show Outline Dokumen). Setelah Anda melihat gambar di atas, Anda dapat menghapus beberapa spasi dan melihat apakah masih berfungsi.
sumber
Seperti halnya Kyle Begeman, Anda menambahkan kode di atas pada pengontrol tampilan root. Semua pengontrol tampilan sub akan diterapkan. Selain itu, menambahkan ini dalam metode initWithCoder:, Anda dapat menerapkan gaya untuk pengontrol tampilan root dalam pendekatan berbasis xib, storyboard atau kode.
sumber