UIPopover 中的导航栏

Posted

技术标签:

【中文标题】UIPopover 中的导航栏【英文标题】:Navigation Bar in UIPopover 【发布时间】:2011-02-15 11:01:06 【问题描述】:

在我的 splitviewcontroller iPad 应用程序中,我展示了一个自定义弹出框(它加载了 rootviewController)。如何不仅显示表格视图,还显示其顶部的导航栏(以显示表格标题“类别”)。

这是我的应用程序:

显示弹出框的代码:

- (IBAction)showPopover:(UIButton *)sender 
if([self.popoverController isPopoverVisible])

    [self.popoverController dismissPopoverAnimated:YES];
    return;


// Build a custom popover view
TemplatesAppDelegate *delegate = (TemplatesAppDelegate*)[[UIApplication sharedApplication] delegate];

// Create a popover controller
self.popoverController = [[[UIPopoverController alloc] initWithContentViewController:delegate.rootViewController] autorelease];

// Present the popover view non-modal at the pressed button's position
[self.popoverController presentPopoverFromRect:sender.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

【问题讨论】:

【参考方案1】:

如果你想要一个具有所有功能的完整 UINavigationController,你可以这样做

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:delegate.rootViewController];

self.popoverController = [[[UIPopoverController alloc] initWithContentViewController:navController] autorelease];
[navController release];

或者,如果您只想要一个导航栏,您可以添加到您的 popovercontroller。

UINavigationBar *tableViewNavigationBar = [[UINavigationBar alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 320.0f, 44.0f)];
[self.popoverController addSubView:tableViewNavigationBar];

我没有测试代码,但它应该可以工作。

【讨论】:

谢谢。我的解决方案是:【参考方案2】:

你可以试试这个:

CNYAssetTypeViewController *avc=[[CNYAssetTypeViewController alloc] init];
if([[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPad)
    UINavigatinoController *nv=[[UINavigationController alloc]initWithRootViewController:avc];
    self.assetTypeControllerPopover=[[UIPopOverController alloc]initWithContentViewController:nv];
    self.assetTypeControllerPopover.delegat=self;
    avc.title=@"CNY";
    [self.assetTypeControllerPopover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopOverArrowDirectionAny animated:YES];
else
    [self.navigationController pushViewController:avc animated:YES];    

【讨论】:

以上是关于UIPopover 中的导航栏的主要内容,如果未能解决你的问题,请参考以下文章

UIPopover 和 UITableView 数据交换

导航栏中的下拉按钮会扭曲导航栏

如何正确关闭 UIPopover?

Dreamweaver中的导航栏中的设计功能 在HBuilder的如何设置

TabBarViewController 的导航栏覆盖来自导航控制器的导航栏

不会将导航项添加到 xcode 中的导航栏