【问题标题】:modal UINavigationController inside UIPopoverViewControllerUIPopoverViewController 内的模态 UINavigationController
【发布时间】:2011-09-07 06:21:10
【问题描述】:

这是我的情况:

我有一个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 中实现一个类似的界面(将电子邮件从一个文件夹移动到另一个文件夹时),但在弹出框内。

【问题讨论】:

    标签: iphone objective-c uinavigationcontroller uipopovercontroller


    【解决方案1】:

    您需要为您以模态方式呈现的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

    【讨论】:

    • 嗯,……我的错。我认为问题是我的问题。我不仅对视图控制器的presentationStyle感兴趣,而且对它的工具栏和导航栏应该有的chrome感兴趣。模态显示的导航控制器似乎不会得到漂亮的海军蓝色 thick 镀铬。 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 2014-11-08
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多