有没有人在旋转设备时成功隐藏了 UITabbar?
我在旋转的 UItabbar 控制器中有一个视图(因此有效地旋转了一个选项卡)
发生这种情况时,我希望标签栏消失......但似乎没有任何效果!
选项卡栏仍然可见
或者它随着视图消失
或者标签栏消失,视图不再旋转!
因此,如果有人成功完成了这项任务,任何建议将不胜感激!
谢谢
汤姆
有没有人在旋转设备时成功隐藏了 UITabbar?
我在旋转的 UItabbar 控制器中有一个视图(因此有效地旋转了一个选项卡)
发生这种情况时,我希望标签栏消失......但似乎没有任何效果!
选项卡栏仍然可见
或者它随着视图消失
或者标签栏消失,视图不再旋转!
因此,如果有人成功完成了这项任务,任何建议将不胜感激!
谢谢
汤姆
抱歉回复晚了 pk
我设法旋转和隐藏标签栏。
首先,它是 UITabBarController 的子类化,并包含此方法:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
//This allows us to get the rotation calls from any view in the tab bar
//
return [self.selectedViewController shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation];
}
然后您可以仅从所需的视图控制器旋转。
隐藏标签栏:
获取对应用委托和标签栏控制器的引用,然后将标签栏设置为隐藏:
MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
UIView *tabBar = [delegate.tabBarController.view.subviews objectAtIndex:1];
tabBar.hidden = TRUE;
希望这可以帮助!
您是否尝试在视图控制器中的 UIDeviceOrientationDidChangeNotification 通知上添加观察者,并在此回调中执行“隐藏 = true 或 false”?
我使用 MonoTouch 框架通过以下 C# 代码成功实现了这一点。
void Initialize ()
{
NSNotificationCenter.DefaultCenter.AddObserver("UIDeviceOrientationDidChangeNotification", DeviceRotated);
}
private void DeviceRotated(NSNotification notification)
{
if ( notification.Name.Equals("UIDeviceOrientationDidChangeNotification") )
{
Console.WriteLine(UIDevice.CurrentDevice.Orientation.ToString());
if ( UIDevice.CurrentDevice.Orientation != UIDeviceOrientation.Portrait )
{
tabBar.Hidden = true;
//Plus some additional logic.
}
else
{
tabBar.Hidden = false;
}
}
}
你真的可以在 UItabbarController 中隐藏标签栏吗?至少笔尖不允许您从底部栏下拉菜单中选择无。