2012-05-07 13 views
6

Ich benutze Idev-Rezepte/RaisedCenterTabBar und ich möchte eine modale Ansicht von der mittleren Taste, nicht eine Kamera aufgerufen.ios Tab Bar Taste zur modalen Ansicht

-Code ist hier: https://github.com/boctor/idev-recipes/tree/master/RaisedCenterTabBar

Alle Ideen, wie diese Arbeit zu bekommen?

+0

Ja, es ist möglich, eine modale Ansicht durch Antippen einer Schaltfläche auf einer "UITabBar" zu erstellen. Sie müssen Ihre Frage präzisieren. –

+0

Aktualisiert ein bisschen ... – stewart715

Antwort

2

würde ich Ihre eigene Unterklasse von UITabBarController erstellen und dann in dieser Methode hinzufügen:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item { 

} 

können Sie sagen, welche Option ausgewählt wurde und dann eine modale VC instanziiert im Inneren gibt.

+0

Was ist mit dem aktuellen VC an das Element in der Tableiste angehängt? Soll das ignoriert werden, oder kann ich es entfernen, während ich das Element der Tableiste beibehalte? – stewart715

+0

Ich denke, du kannst es ignorieren. Es kann nicht entfernt werden (ein TabBarController muss für jede Registerkarte eine VC haben). –

+7

Aber wenn ich das Modal öffne, wird es nicht VCs dahinter schalten und dann, wenn fertig mit Modal show blank VC? Wie bekomme ich es, es einfach zu ignorieren und keine Standardaktion zu rendern? – stewart715

0

Wahrscheinlich könnte man einfach die UITabBarDelegate verwendet, mit der
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
Methode.
Die Methode wird an den Delegaten gesendet, wenn jemand eine Schaltfläche in der Tableiste drückt. Dort können Sie überprüfen, ob es die richtige Schaltfläche war, und dann den Modal View-Controller instanziieren.

0

Entweder mit Unterklassen oder mithilfe des Delegaten können Sie einfach prüfen, ob das ausgewählte Element Ihre mittlere Schaltfläche ist. Ist dies der Fall, wählen Sie in der Registerleiste das zuvor ausgewählte Element aus und zeigen Sie dann Ihren Modellansicht-Controller an. Da Sie dies innerhalb derselben RunLoop-Quelle tun werden, bei der die ursprüngliche Auswahl erfolgt ist, wird die Auswahl der Registerkarte effektiv rückgängig gemacht, ohne jemals zum mittleren VC zu wechseln.

0

Nach dem Codebeispiel von Ihnen zur Verfügung gestellten => https://github.com/boctor/idev-recipes/tree/master/RaisedCenterTabBar

Die zentrale angehoben Tab-Taste ein UIButton ist, so eingestellt, nur die Wirkung dieser Taste wie dies in BaseViewController.m Klasse

[button addTarget:self action:@selector(showmodalview) forControlEvents:UIControlEventTouchUpInside]; 

und dann in showmodalview Methode schreiben Sie diesen Code =>

-(void)showmodalview 
{ 
    UIViewController *view1=[[UIViewController alloc] init]; // you can use any view controller instance you want ,this is just the example. 
    [self presentModalViewController:view1 animated:YES]; 
} 
4

Es gibt einen besseren Ansatz zu folgen, um zu erreiche das. Und viel einfacher.

Was ich unter Implementierung dieser Methode verstehe: https://github.com/boctor/idev-recipes/tree/master/RaisedCenterTabBar ist, dass seltsame Dinge passieren, wenn Sie versuchen, die Tab-Leiste zu verbergen. Also die beste Lösung, die ich für mich gefunden habe (die gleiche Sache wie du) ist hier: http://www.lantean.co/display-a-modal-uiviewcontroller-when-a-uitabbaritem-is-pressed/

Es gibt keine Notwendigkeit, etwas anderes zu tun. Ignorieren Sie einfach den View-Controller, mit dem das UITabBarItem verknüpft ist, und zeigen Sie Ihre modale Ansicht an! Das ist alles!

Verwandte Themen