UIPopoverViewController中的模态UINavigationController

时间:2011-09-07 06:21:10

标签: iphone objective-c uinavigationcontroller uipopovercontroller

这是我的情况:

我有一个UINavigationViewController(有一堆UITableViewControllers),位于UIPopoverViewController内。这就是它现在的样子:

然后其中一个按钮就有了这个动作:

MyViewController *moveViewcontroller = [[MyViewController alloc] init];
moveViewcontroller.contentSizeForViewInPopover = self.contentSizeForViewInPopover;

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:moveViewcontroller];
navController.toolbarHidden = NO;
navController.navigationBarHidden = NO;
navController.contentSizeForViewInPopover = self.navigationController.contentSizeForViewInPopover;
navController.modalPresentationStyle = UIModalPresentationCurrentContext;//to show it inside the popover

[self.navigationController presentModalViewController:navController animated:YES];
[navController release];
[moveViewcontroller release];

其中显示了导航控制器,但它不像第一张图片中的导航控制器那样在UIPopoverController中嵌入。这就是我得到的:

不太好,并且与之前的界面不一致 有没有办法让我的模态导航控制器嵌入 UIPopoverController

基本上,我想在iPhone中实现类似于Mail.app中的类似界面(将电子邮件从一个文件夹移动到另一个文件夹时),但在popover中。

1 个答案:

答案 0 :(得分:0)

您需要为模式指定的UIViewController指定演示文稿样式。 我使用以下代码执行此操作:

MyViewController* mvc = 
[[MyViewController alloc]
 initWithNibName:@"MyViewController"
 bundle:nil];
mvc.modalPresentationStyle = UIModalPresentationFormSheet;
mvc.contentSizeForViewInPopover = CGSizeMake(320.0f, 210.0f);
[self.navigationController pushViewController:mvc animated:YES];

关键线是处理modalPresentationStyle的关键线 - 强制模态视图控制器显示在UIPopoverController