我有一个要求,我需要从UITabBarController实现UIPopOverController,当我单击其中一个被调用的选项卡(例如“pop”)时,在UITabBarController中,然后popover应显示两个字段。我的问题是,实现这一目标的最佳方法是什么。如果有任何视频示例或只是一些解释的材料,那么您也可以与我分享链接。只是忍受我,因为我在ios环境中弄湿了脚。
任何建议都将不胜感激!
由于 MAKS
答案 0 :(得分:0)
我整理了一个示例项目,该项目将在所选UITabBarItem上方显示UIPopoverController。
http://mobileoverlord.com/displaying-a-uipopovercontroller-from-a-uitabbaritem/
这包含一些小问题,因为您需要遍历TabBar的子视图。此外,它可能在iOS 5上有所不同,因为TabBar的背景视图位于TabBar的子视图数组中。它在tabBarController委托方法
中实现- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
NSInteger index = [[self tabBarController] selectedIndex];
CGRect buttonFrame = [[[[[self tabBarController] tabBar] subviews] objectAtIndex:index+1] frame];
PopOverViewController *popoverView = [PopOverViewController new];
popoverView.contentSizeForViewInPopover = CGSizeMake(250, 300);
popover = [[UIPopoverController alloc]initWithContentViewController:popoverView];
NSLog(@"X:%f Y:%f",buttonFrame.origin.x,buttonFrame.origin.y);
[popover presentPopoverFromRect:buttonFrame inView:self.tabBarController.tabBar permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
}
以下是示例代码。随意评论和操纵。
https://github.com/mobileoverlord/UITabBarPopOver-Demo
如果您只想在按下某个按钮时限制它,您可以像这样过滤传入viewController
的类
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
if ([viewController isKindOfClass:[SecondViewController class]]) {
NSInteger index = [[self tabBarController] selectedIndex];
CGRect buttonFrame = [[[[[self tabBarController] tabBar] subviews] objectAtIndex:index+1] frame];
PopOverViewController *popoverView = [PopOverViewController new];
popoverView.contentSizeForViewInPopover = CGSizeMake(250, 300);
popover = [[UIPopoverController alloc]initWithContentViewController:popoverView];
NSLog(@"X:%f Y:%f",buttonFrame.origin.x,buttonFrame.origin.y);
[popover presentPopoverFromRect:buttonFrame inView:self.tabBarController.tabBar permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
}
}
答案 1 :(得分:0)
这是我的解决方案,我在“https://github.com/mobileoverlord/UITabBarPopOver-Demo”的基础上进行了上述修改,以下是我的演示。 https://github.com/mrhyh/iPad/tree/master/