Secara default tombol kembali digunakan sebagai teks di atasnya judul viewcontroller. Dapatkah saya mengubah teks di tombol kembali tanpa mengubah judul pengontrol tampilan? Saya memerlukan ini karena saya memiliki pengontrol tampilan yang judulnya terlalu panjang untuk ditampilkan dan dalam hal ini saya hanya ingin menampilkan "Kembali" sebagai keterangan untuk tombol kembali.
Saya mencoba yang berikut ini yang tidak berhasil:
self.navigationItem.leftBarButtonItem.title = @"Back";
Terima kasih.
ios
iphone
cocoa-touch
uinavigationitem
Ilya Suzdalnitski
sumber
sumber
Jawaban:
Mencoba
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];
Saya menemukannya dengan melihat dokumen backBarButtonItem di dokumen Apple untuk UINavigationItem .
sumber
Pendekatan Marc W bekerja dengan baik setelah saya menemukan pengontrol mana yang akan diterapkan: yang diberi judul ulang, bukan yang di atas. Jadi jika ini adalah tumpukan navigasi:
(bottom) ControllerA -> ControllerB (top)
... dan Anda ingin memberikan judul yang lebih pendek untuk ControllerA di tombol kembali yang ditampilkan saat ControllerB berada di atas , Anda menerapkan perubahan properti ke ControllerA .
Jadi lebih dalam konteks
self.title
, tidak seperti penyetel tombol bilah kiri / kanan lainnya.sumber
Anda bisa melakukannya di storyboard. Temukan pengontrol tampilan yang ingin Anda kembalikan (yang memiliki judul panjang), pilih Item Navigasi, dan buka Attributes Inspector (Alt + Cmd + 4), masukkan judul Tombol Kembali kustom.
sumber
Terima kasih Marco ... itu membantuku ...
Inilah yang saya lakukan.
Jika Anda menggunakan tableView untuk menavigasi ke tampilan berbeda ... letakkan kode:
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];
Dalam
didSelectRowAtIndexPath
metode Anda ... Pengontrol pertama ... Pengontrol A.Saat Anda menavigasi ke Pengontrol B tombol akan memiliki judul "Kembali".
sumber
Tombol kembali menarik teksnya dari judul pengontrol tampilan induk.
Di pengontrol tampilan orang tua (pengontrol tampilan yang muncul saat Anda mengetuk tombol kembali), atur judulnya sendiri sebagai teks yang diinginkan pada tombol kembali.
Misalnya, kita punya
RootViewController
kelas. Saat kita mengklik sel dalam tampilan tabelnya, kita mendorong sebuah instanceSecondViewController
. Kami ingin tombol kembali dariSecondViewController
instance tersebut bertuliskan, "Beranda".dalam
viewDidLoad
metode RootViewController.m :self.title = @"Home";
dalam
viewDidLoad
metode SecondViewController.m :UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil]; self.navigationItem.backBarButtonItem = backButton; [backButton release];
Jika Anda ingin tombol kembali bertuliskan, "Kembali", setel judul pengontrol tampilan induk ke
@"Back"
;sumber
Ini bekerja lebih baik untuk saya. Coba:
self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
sumber
Jika Anda menggunakan storyboard:
Itu dia, selamat menikmati ...
sumber
Dan di MonoTouch, pekerjaan berikut (di ViewDidLoad dari pengontrol induk):
NavigationItem.BackBarButtonItem = new UIBarButtonItem( "Back", UIBarButtonItemStyle.Plain, null);
sumber
[self.navigationItem setBackBarButtonItem:[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil]];
Ini berhasil untuk saya.
sumber
Di pengontrol tampilan orang tua Anda, setel tombol kembali saat tampilan dimuat:
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"title" style:UIBarButtonItemStylePlain target:nil action:nil]; }
Perhatikan bahwa kami tidak perlu menyertakan
autorelease
di bagian akhir dengan versi iOS terbaru.Semoga ini membantu!
sumber
[self.navigationController.navigationBar.backItem setTitle:@"back"];
Ini bekerja untuk saya. Anda dapat mengganti "kembali" dengan yang lain.
sumber
Yang ini berhasil untuk saya jika Anda tidak ingin memiliki gelar!
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStylePlain target:nil action:nil];
sumber
self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
sumber
Saya akhirnya tahu mengapa jawaban ini tidak berhasil untuk saya pada awalnya. Saya menetapkan judul di storyboard. Ketika saya mengatur judul pada kode. berhasil!
self.navigationItem.title = @"Main Menu"; UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStyleBordered target:nil action:nil]; [[self navigationItem] setBackBarButtonItem:backButton];
sumber
Solusi saya adalah menetapkan judul ketika pengontrol tampilan didorong ke tumpukan navigasi dan mengatur ulang dengan menggunakan metode delegasi sebelum mendorong vc menutup:
Jadi saya menempatkan perubahan judul dalam memanggil pengontrol tampilan ketika saya mendorong pengontrol tampilan lain seperti:
self.pushedVC = [self.storyboard instantiateViewControllerWithIdentifier:@"pushedVCIdentifier"]; self.pushedVC.delegate = self; [self.navigationController pushViewController:self.pushedVC animated:YES]; self.title = @"Back";
dan dalam fungsi panggilan balik delegasi (yang saya panggil di viewWillDissapear):
-(void)pushedVCWillClose:(PushedVC *)sender { self.title = @"Previous Title"; }
sumber
Jika Anda tidak hanya ingin mengubah teks tombol Kembali dan tetap menjadi bentuk panah kiri asli, tetapi juga ingin melakukan sesuatu saat pengguna mengklik tombol Kembali, saya sarankan Anda untuk melihat-lihat " CustomNavigationController " saya.
sumber
// Anda dapat mencapai ini dengan mengatur judul di pengontrol tampilan sebelumnya seperti yang ditunjukkan di bawah ini
override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) //Set Title for this view self.navigationItem.title = "My Title" } override func viewWillDisappear(animated: Bool) { super.viewWillAppear(animated) //Set Title for back button in next view self.navigationItem.title = "Back" }
sumber
Untuk mengubah judul tombol kembali, lihat kode di bawah ini
InformationVC *infoController=[[InformationVC alloc]init];[self.navigationController infoController animated:YES]; //Below code changed back button title on InformationVC page. UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Information" style: UIBarButtonItemStylePlain target: nil action: nil]; self.navigationItem.backBarButtonItem = backBarButton;`enter code here`
sumber
Di Swift5, backBarButtom tidak dapat diedit. Oleh karena itu, kita perlu menyembunyikan backBarButtom terlebih dahulu, kemudian menggunakan leftbarButtom yang disesuaikan untuk menggantikan backBarButtom. Berikut adalah solusi terperinci: https://stackoverflow.com/a/63868300/13939003
sumber
Ini berhasil untuk saya:
self.navigationController.navigationBar.topItem.title = "Back"
sumber