2

在我的splitviewcontroller iPad应用程序中我显示一个自定义popover(加载rootviewController)。如何不仅显示表格视图,而且还显示一个导航栏(显示表格标题“Categories”)。UIPopover中的导航栏

这里是我的应用程序:

enter image description here

我的代码,以显示酥料饼:

- (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]; 

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

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

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

+0

感谢。对我来说,解决方案是: – Stefan 2011-02-16 17:28:40

0

你可以试试这个:

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; 
    [email protected]"CNY"; 
    [self.assetTypeControllerPopover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopOverArrowDirectionAny animated:YES]; 
}else{ 
    [self.navigationController pushViewController:avc animated:YES];  
}