2009-08-05 45 views
-1

ich suche nach einer Möglichkeit, ein TabBarItem aus dem ViewController eines der TabBars Tabs zu deaktivieren. Ich bin mir sogar nicht sicher, ob es sich um die Hierarchie handelt oder um was wirklich zu suchen ist. Ich habe viel versucht, aber keine Lösung gefunden.Zugriff auf ein TabBarItem von einem der ViewControllers aus

Momentan habe ich daran gearbeitet, indem ich einen Verweis auf die Tabbar in einem Singleton-Objekt gespeichert habe, als ich die Tableiste installiert habe (innerhalb des Apps-Delegaten). Aber ich denke nicht, dass dies der beste Weg ist.

Dank und Beifall, Nils

Antwort

0

Vielleicht verstehe ich nicht, was Sie wollen, aber ich habe eine Tab-Leiste Taste, indem Sie in Interface Builder dissabled, dann auf die Registerkarte Taste i arbeiten möchten Auswahl (kleine blaue Highlightfarbe nur auf den Platzhalter für das Bild, die kleine Box mit einem? drauf) dann -> Extras Menü -> Inspektor -> Reiterleiste Eigenschaften (erste Registerkarte links im Inspektor) -> dann ein kleines Radio-Button auf der Unterseite sagt "Enabled" -> deaktivieren Sie dies. Funktioniert für mich, da ich dies als einfachen Ladebildschirm auf der ersten Registerkarte benutze. Ich hoffe, das hilft. Kirk

1

Ich hatte das gleiche Problem, und ich habe eine Lösung gefunden (aber ich es ein wenig schmutzig finden)

In Ihrem ViewController, wo Sie die TabBarItem deaktivieren möchten, erstellen Sie eine Variable UITabBarController *myTabBarController; mit Eigentum.

MyViewController * vc = (MyViewController *)[navigationController.viewControllers objectAtIndex:0];// O the index of the first view controller replace it with the index of the needed viewController 
vc.myTabBarController = myTabBarController; // pass your TabBarController to your ViewController 

Nun zurück zu Ihrer ViewController Klasse (MyViewController) und verwenden Sie den Code deaktivieren Sie die tabBarItem:

UITabBarItem *mapTabBarItem= [[myTabBarController.tabBar items] objectAtIndex:1]; // I want to desable the second tab for example (index 1) 
[mapTabBarItem setEnabled:NO]; 

In der Klasse, wo Sie Ihre Tabbarcontroller im viewDidLoad setzen diesen Code verwalten

Beachten Sie, dass dies nicht der beste Weg ist, aber es funktioniert :-)

Verwandte Themen