【发布时间】:2016-11-23 23:53:41
【问题描述】:
我正在开发一个通用应用程序。 整体设计是在 iPhone 上有标签栏,但在 iPad 上没有。
我一直在尝试使用 size 类,但没有成功。
一些示例应用是 MLB At bat 和 EBates,它们在 iPhone 版本上有标签栏,但在 iPad 版本上没有。
我应该如何做到这一点?
【问题讨论】:
标签: ios iphone ipad autolayout size-classes
我正在开发一个通用应用程序。 整体设计是在 iPhone 上有标签栏,但在 iPad 上没有。
我一直在尝试使用 size 类,但没有成功。
一些示例应用是 MLB At bat 和 EBates,它们在 iPhone 版本上有标签栏,但在 iPad 版本上没有。
我应该如何做到这一点?
【问题讨论】:
标签: ios iphone ipad autolayout size-classes
在特定 iPad 视图中隐藏标签栏。在您的 viewdidload 方法中。
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
self.tabBarController.tabBar.hidden=YES;
}
如果您有许多或多个控制器需要此行为,您可以创建一个 UIViewController 的自定义类并将此方法放入其中。你没有提到你需要的具体行为
或
在您的导航控制器中(如果您正在创建一个)使用myController.hidesBottomBarWhenPushed = YES。例如,如果您在 AppDelegate 中创建一个,它将在 navigationController 层次结构中的所有视图中隐藏标签栏(任何视图,除非您在应用程序中使用另一个 navigationController)
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];
如果您使用界面生成器来实现相同的行为,您总是可以将您的navigationController 子类化以实现相同的行为
您还没有说明您使用的是什么语言 Objective C 或 swift。用语言标记您的问题会很有用。自动布局标签无关紧要,因为这与自动布局无关
【讨论】: