Herkese selam Benim uygulamada, bir tablo görünümünü görüntülemek için dışarı çıkacak bir yan menüm var ve orada görünür görünüm denetleyicisini kullanan görevlerim var. Segue, doğrudan kontrolöre bağlanmalı, aksi halde uygulama çökecektir, bu yüzden bir navigasyon denetleyicisi kullanamıyorum. Sorum şu: Gezinme denetleyicisi olmayan bir çubuk düğme öğesinin bulunduğu gezinme çubuğunu nasıl ekleyebilirim. Tüm düzenlerimi hikaye panosunda yaptım. Sorunuzu yanıtlamak için birkaç akıllı yolu olsaGezinme denetleyicisi olmadan bir görünüme gezinti çubuğu nasıl eklenir
cevap
. Sadece programlı bunu çözmüş ve benim
viewWillAppear
aşağıdaki kodu yazdım (not -
viewDidLoad
da tamam, ama tavsiye edilmez) - Yani
-(void) viewWillAppear:(BOOL)animated { UINavigationBar *myNav = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)]; [UINavigationBar appearance].barTintColor = [UIColor lightGrayColor]; [self.view addSubview:myNav]; UIBarButtonItem *cancelItem = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:nil]; UIBarButtonItem *doneItem = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:nil]; UINavigationItem *navigItem = [[UINavigationItem alloc] initWithTitle:@"Navigation Title"]; navigItem.rightBarButtonItem = doneItem; navigItem.leftBarButtonItem = cancelItem; myNav.items = [NSArray arrayWithObjects: navigItem,nil]; [UIBarButtonItem appearance].tintColor = [UIColor blueColor]; }
, bir navigasyon kontrolörü olmadan mavi çubuk düğme öğeleri ile beyaz gezinti çubuğu . Yine, davasında bunu uygulamak için başka yollar var. Umarım bu yardımcı oldu.
Çıktı -
Güncelleme -
eklemek için görüntüleri - bunun için arayüz oluşturucu NavigationItem
kullanmak için bir yol yoktur
UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0,10,32,32)];
[myImage setImage:[UIImage imageNamed:@"image.png"]];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:myImage];
[self.view addSubview:myImage];
.
İlk olarak, numaralı numaralı arabiriminize, NavigationController
ile yaptığınız gibi, arabirim oluşturucunuza ViewController
ekleyin. 'un ve None
'dan başka bir tanesini simüle metrikler altında seçerek görebildiğinden emin olun.
İkincisi, viewDidLoad
yılında, sadece aşağıdaki satırları ekleyin: status bar
ise
- (void)viewDidLoad
{
[super viewDidLoad];
UINavigationBar *bar = [[UINavigationBar alloc] initWithFrame: frame];
bar.items = @[self.navigationItem];
[self.view addSubview: bar];
}
olarak frame
için, width
ya 44.0
veya 64.0
bağlı olacak ViewController
ve height
aynı olacaktır görünür veya.
CGFloat navigationBarHeight = 44.f + [UIApplication sharedApplication].statusBarFrame.size.height;
CGRect frame = CGRectMake(0, 0, self.view.frame.size.width, navigationBarHeight);
Ve farklı yönleri kullanım NSLayoutConstraints
desteklemek isterseniz: olarak,
CGFloat navigationBarHeight = 44.f + [UIApplication sharedApplication].statusBarFrame.size.height;
[self.view addConstraints: @[
[NSLayoutConstraint constraintWithItem: self.view
attribute: NSLayoutAttributeLeft
relatedBy: NSLayoutRelationEqual
toItem: bar
attribute: NSLayoutAttributeLeft
multiplier: 1.0
constant: 0.0],
[NSLayoutConstraint constraintWithItem: self.view
attribute: NSLayoutAttributeRight
relatedBy: NSLayoutRelationEqual
toItem: bar
attribute: NSLayoutAttributeRight
multiplier: 1.0
constant: 0.0],
[NSLayoutConstraint constraintWithItem: self.view
attribute: NSLayoutAttributeTop
relatedBy: NSLayoutRelationEqual
toItem: bar
attribute: NSLayoutAttributeTop
multiplier: 1.0
constant: 0.0],
[NSLayoutConstraint constraintWithItem: bar
attribute: NSLayoutAttributeHeight
relatedBy: NSLayoutRelationEqual
toItem: nil
attribute: NSLayoutAttributeNotAnAttribute
multiplier: 1.0
constant: navigationBarHeight],
]];
Swift 4 Versiyon
let navigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: 320, height: 50))
navigationBar.barTintColor = UIColor.lightGray
view.addSubview(navigationBar)
let cancelButton = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: nil)
let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: nil)
let navigationItem = UINavigationItem(title: "Title")
navigationItem.rightBarButtonItem = cancelButton
navigationItem.leftBarButtonItem = doneButton
navigationBar.items = [navigationItem]
"viewWillAppear" ekleyerek çok dikkat Bu yöntem daha fazla kez çağrılabilir, (örneğin, bir modal görünür ....be) didDisappear örneğin kontrolör çıkan emin kaldır,
viewWillAppear:(BOOL)animated {
if self.myNav != nil{
return
}
self.myNav = ....
3: beyan) bir değişken
1: önceden ayarlanmış ise
var myNav: UINavigationBar?
2) testi), böylece yapay bir yaklaşım kullanır ...
"viewWillAppear" ifadesine ekleme konusunda çok dikkatli olun, çünkü bu yöntem daha fazla çağrılabilir, (örneğin bir model görüntülenir ....) bu nedenle tembel bir yaklaşım kullanın:
... didDisappear örneğin emin kaldır çıkan kontrolör olmak)not
viewWillAppear:(BOOL)animated {
if self.myNav != nil{
return
}
self.myNav = ....
3: zaten ayarlarsanız
var myNav: UINavigationBar?
2) testi:
1) bir var bildirmek .. boyutu belirtmek doğru değil .. iOS döner, iyi çalışmıyorsa ..
- 1. Model görünümünde gezinme denetleyicisi
- 2. Bir sekme çubuğu denetleyicisi uygulamasında üst gezinme çubuğu yok
- 3. Swift - Gezinme çubuğuyla başka bir görünüm denetleyicisi sunun
- 4. Manzara modunda Gezinme Çubuğu ve Gezinme Denetleyicisi nasıl dönüştürülür
- 5. Gezinme çubuğu ve görünüm denetleyicisi ile Otomatik Düzenleme (iOS 7)
- 6. IntelliJ Pencere Gezinme Gezinti
- 7. Push/Pop View Denetleyici Gezinme Çubuğu Olmadan View Controller'dan Gezinme Çubuğuyla
- 8. Özel gezinti çubuğu yüksekliği ve görünümü
- 9. Gezinme denetleyicisi çubuğunun görünümü nasıl görüntülenir?
- 10. Kök Görünümde Gezinme Denetleyicisi nasıl gizlenir?
- 11. iPhone gezinti çubuğu, aygıttaki tüm düğmeleri göstermiyor
- 12. IPHONE: ABPeoplePickerNavigationController gizli gezinme çubuğu
- 13. Arama çubuğu etkin hale geldiğinde gezinme çubuğu tarafından gizleniyor
- 14. Birden çok düğmeli gezinti çubuğu
- 15. Gezinme çubuğunda menü düğmesi nasıl eklenir
- 16. Alttan görünüm denetleyicisi olarak eklenen bir gezinme denetleyicisinin çerçevesini ayarlama
- 17. Gezinme çubuğu menüde düzgün oturmuyor
- 18. UIToolbar Storyboard'da bir NavigationController'a nasıl eklenir?
- 19. iOS MapView, gezinme çubuğu, durum çubuğu ve sekme çubuğu denetleyicisinin altından geçer
- 20. Xamarin iOS: görünüm çubuğuna basıldıktan sonra gezinti çubuğu gösterilmiyor
- 21. Gezinme çubuğu, segue sonrası yüksekliği değiştiriyor
- 22. leftbarbuttonitem, gezinti çubuğunda görünmüyor
- 23. Angularjs'de gezinme çubuğu nasıl uygulanır
- 24. Ayrıntı görünümünde gezinme denetleyicisi ekle
- 25. Görüntü, UINavigationController'in gezinme çubuğunun üstüne nasıl eklenir?
- 26. Gezinme çubuğu düğmelerini bir görünümde nasıl değiştiririm?
- 27. Moodle - gezinti çubuğunda sayfalar/öğeler nasıl eklenir
- 28. Tablo görünümünde gezinme denetleyicisi nasıl görüntülenir?
- 29. Duyarlı Gezinme Çubuğu Bug
- 30. Durum çubuğu Gezinme Çubuğuyla aynı renkte değil
merhaba, bu harika çözüm için teşekkürler ama nasıl bir görüntü düğmesinin nasıl olduğunu biliyor musunuz ays sadece metinden ziyade iptal eder? – user3381665
Cevabımı güncelledi. Hey, beni çok kodladın. Eminim, kodunuzu özelleştirebilir ve işlevsel hale getirebilirsiniz. – raurora
Bu adam için üzgünüm, bu Android için yeni ve ben sadece bu bir IOS uygulaması yapmak çünkü takımımın geri kalanı bırakın. – user3381665