2015-01-11 29 views
12

Ayar çubuğu düğme öğem var (sol çubuk düğme öğesi olarak ayarla). Sadece kullanıcı oturum halinde görüntülemek istiyorum. Belirli kullanıcılar için bir bar düğme öğesi nasıl gizlenir

ben anonim kullanıcılar

navigationItem.leftBarButtonItem = nil 

Ama sonra oturum olarak nasıl kısa sürede olsa görünecekti için aşağıdaki kullanabileceğini düşündüm?

cevap

28

Bir strong özelliğinde leftBarButtonItem bir kopyasını saklamak ve kullanıcıların oturum açtıktan sonra tekrar ayarlayabilirsiniz.

var leftBarButtonItem : UIBarButtonItem! 

İçinde viewDidLoad

self.leftBarButtonItem = UIBarButtonItem(title: "test", style:   UIBarButtonItemStyle.Plain, target: nil, action: nil) 

mantıkta

if loggedIn 
{ 
    self.navigationItem.leftBarButtonItem = self.leftBarButtonItem 
} 
else 
{ 
    self.navigationItem.leftBarButtonItem = nil 
} 
3

Best Way, Bar resmini sadece görüntülü olarak özelleştirir. Gizlemek için barbuttom.image = nil'u tekrar ayarlayın, gösterilecek görüntüyü atayın. Ve barbuttonun yanlış olarak yapılmasını sağlamayı unutma.

1

Bu 2 menüden daha fazlasına sahibim ve menuitem'i kaldırmak/eklemek bir genel gider. Bu kod snippet'i benim için çalıştı.

func showMenuItem(){ 

    menuItemQuit.customView?.isHidden = false 
    menuItemQuit.plainView.isHidden = false 
} 

func hideMenuItem(){ 

    menuItemQuit.customView?.isHidden = true 
    menuItemQuit.plainView.isHidden = true 
} 
0

sen/gösteri UIBarButtonItem gizlemek istiyorsanız: Basit kodunun altına Kullanılan Swift 3

için:

Beyanı: viewDidLoad

var doneButton = UIBarButtonItem() 

() veya ViewWillAppear() veya istediğiniz yere gizlemek: [kodunuzda herhangi bir yerde kullanılması]

self.navigationItem.rightBarButtonItem = self.doneButton 
     doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(YourViewController.dismissPicker)) 
: [sakla çubuğu düğmesi] Eğer çubuğu düğmesini göstermek istiyorum

self.navigationItem.rightBarButtonItem = nil