2016-07-20 30 views
0

Ich entwickle eine universelle App. Das allgemeine Design besteht darin, Registerkarten auf iPhones, aber nicht auf iPads zu haben.Tab-Leiste auf dem iPhone, aber nicht auf dem iPad

Ich habe versucht, Größenklasse zu verwenden, fand aber kein Glück.

Einige Beispiel-Anwendungen sind MLB Bei Fledermaus und EBates haben sie Tab-Bars auf der iPhone-Version, aber nicht auf dem iPad.

Wie soll ich das erreichen?

Antwort

0

Zum Ausblenden der Tab-Leiste in einer bestimmten iPad-Ansicht (en). In Ihrer viewdidload Methode.

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 

     self.tabBarController.tabBar.hidden=YES; 

    } 

Sie könnten eine eigene Klasse von UIViewController erstellen und diese Methode in setzen, wenn Sie viele oder eine Mischung von Controllern, die dieses Verhalten erfordern. Sie erwähnen nicht das spezifische Verhalten Sie

oder

In Ihrer in Ihrem Navigations Controller benötigen verwendet myController.hidesBottomBarWhenPushed = YES (falls Sie eine sind erstellen). Wenn Sie in Ihrem AppDelegate zum Beispiel sind die Schaffung würde es die Tabbar in allen Ansichten verbergen, die in der Hierarchie des navigationController sind (jeder Ansicht, es sei denn Sie eine andere navigationController in Ihrer App verwenden)

MyController *myController = [[MyController alloc]init]; 

// Hide tab bar for all app 
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    myController.hidesBottomBarWhenPushed = YES; 
    } 

[self.navigationController pushViewController:myController animated:YES]; 

Sie konnte immer Unterklasse Ihre navigationController erreichen das gleiche, wenn Sie Interface Builder verwenden, um das gleiche Verhalten zu erreichen

Sie haben nicht angegeben, welche Sprache Sie Objective C oder swift verwenden. Das Markieren Ihrer Frage mit der Sprache wäre nützlich. Das automatische Layout-Tag ist irrelevant, da dies nichts mit dem automatischen Layout

zu tun hat