Saya mencoba menambahkan tombol segarkan ke bilah atas pengendali navigasi tanpa hasil.
Inilah tajuknya:
@interface PropertyViewController : UINavigationController {
}
Inilah cara saya mencoba menambahkannya:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain
target:self action:@selector(refreshPropertyList:)];
self.navigationItem.rightBarButtonItem = anotherButton;
}
return self;
}
iphone
ios
uinavigationcontroller
uinavigationbar
Artilheiro
sumber
sumber
self.topViewController.navigationItem.leftBarButtonItem = nextButton;
Coba tambahkan tombol ke item navigation dari pengontrol tampilan yang akan didorong ke
PropertyViewController
kelas ini yang telah Anda buat.Itu adalah:
Sekarang, infoTombol ini yang telah dibuat secara pemrograman akan muncul di bilah navigasi. Idenya adalah bahwa pengontrol navigasi mengambil informasi tampilan (judul, tombol, dll) dari
UIViewController
yang akan ditampilkan. Anda tidak benar-benar menambahkan tombol dan semacamnya langsung keUINavigationController
.sumber
Tampaknya beberapa orang (seperti saya) mungkin datang ke sini mencari cara menambahkan tombol bilah navigasi di Interface Builder. Jawaban di bawah ini menunjukkan cara melakukannya.
Tambahkan Pengontrol Navigasi ke Storyboard Anda
Pilih View Controller Anda dan kemudian di menu Xcode pilih Editor> Embed In> Navigation Controller .
Atau, Anda bisa menambahkan
UINavigationBar
dari Perpustakaan Objek.Tambahkan Item Tombol Bar
Seret
UIBarButtonItem
dari Perpustakaan Objek ke bilah navigasi atas.Seharusnya terlihat seperti ini:
Atur Atribut
Anda bisa mengklik dua kali "Item" untuk mengubah teks menjadi sesuatu seperti "Refresh", tetapi ada ikon aktual untuk Refresh yang dapat Anda gunakan. Cukup pilih Inspektur Atribut untuk
UIBarButtonItem
dan untuk Item Sistem pilih Refresh .Itu akan memberi Anda ikon Segarkan bawaan.
Tambahkan Aksi IB
Kendalikan kontrol dari
UIBarButtonItem
ke View Controller untuk menambahkan@IBAction
.Itu dia.
sumber
Ada tombol sistem default untuk "Refresh":
sumber
Anda bisa menggunakan ini:
Objektif-C
Cepat
sumber
sumber
Untuk swift 2:
sumber
Inilah solusi di Swift (tetapkan opsi sesuai kebutuhan):
sumber
Mengapa Anda subkelas
UINavigationController
? Tidak perlu mensubklasifikasikannya jika yang perlu Anda lakukan hanyalah menambahkan tombol.Siapkan hierarki dengan a
UINavigationController
di atas, dan kemudian dalamviewDidLoad:
metode pengontrol tampilan root Anda : atur tombol dan lampirkan ke item navigasi dengan memanggilsumber
Anda dapat mencoba
sumber
Swift 4:
sumber
sumber
Coba ini. Ini bekerja untuk saya.
Bilah navigasi dan juga menambahkan gambar latar belakang ke tombol kanan.
sumber
sumber
sumber
sumber
Anda harus menambahkan
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
metode barButtonItem Anda .sumber
Cukup salin dan tempel kode Objective-C ini.
sumber
Masalah ini dapat terjadi jika kami menghapus controller tampilan atau mencoba untuk menambahkan controller tampilan baru di dalam pembangun antarmuka (main.storyboard). Untuk memperbaiki masalah ini, perlu menambahkan "Item Navigasi" di dalam pengontrol tampilan baru. Terkadang kami membuat layar pengontrol tampilan baru dan itu tidak terhubung ke "Item Navigasi" secara otomatis.
sumber
Anda juga dapat menambahkan beberapa tombol menggunakan
rightBarButtonItems
sumber
@ Artilheiro: Jika ini adalah proyek berbasis navigasi, Anda dapat membuat BaseViewController. Semua tampilan lain akan mewarisi BaseView ini. Di BaseView, Anda dapat menentukan metode umum untuk menambahkan tombol kanan atau mengubah teks tombol kiri.
ex:
Dan sekarang di setiap tampilan kustom, terapkan tampilan dasar ini memanggil metode:
Dalam beberapa metode metode panggilan dasar seperti:
sumber