我正在为 iOS 4.1+ 编写应用程序,我必须以编程方式添加选项卡栏以查看控制器。
以下是主视图控制器的代码:
- (void)viewDidLoad
{
FirstViewVC* vc1 = [[FirstViewVC alloc] init];
vc1.tabBarItem.title = @"Tab 1";
AboutVC* vc2 = [[AboutVC alloc] init];
vc2.tabBarItem.title = @"About Program";
NSArray* controllers = [NSArray arrayWithObjects:vc1,vc2, nil];
tabBarController.viewControllers = controllers;
self.tabBarController.view.frame = [[self view] frame];
tabBarController.view.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleHeight;
self.view.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:tabBarController.view];
(...) //deallocs
}
结果如下所示:
http://img152.imageshack.us/img152/5176/nohotspotup.png
现在,如果我打开个人热点,一切都在下滑:
http://img528.imageshack.us/img528/9348/img0028y.png
如您所见,选项卡栏被切断了。我已经尝试了许多应用调整大小蒙版和添加标签栏的方法,但我仍然无法使其正常工作。
有没有办法解决这个问题?
这不是错误,如果您接听电话,然后在呼叫仍处于活动状态时切换到您的应用程序,也会发生这种情况。
这是你需要的。在布置 UI 时要考虑并确保当该栏恢复到正常大小时 UI 恢复到所需的状态,这是另一件需要注意的小事。
此外,如果您打开iChat,您可以在模拟器上更轻松地测试这一点 - 我想现在您应该使用Mountain Lion上的FaceTime应用程序,由于"活动呼叫",这应该将该顶部栏设置为绿色,我试图摆脱模拟器徒劳无功,因为我正在会议和开发,这导致了问题, 但是一个很好的,因为我随后正确地布置了我的 UI。