使用选项 UIModalPresentationOverCurrentContext 减小模态显示的 uiviewcontroller 的帧大小

Posted

技术标签:

【中文标题】使用选项 UIModalPresentationOverCurrentContext 减小模态显示的 uiviewcontroller 的帧大小【英文标题】:Reducing the frame size of a uiviewcontroller being presented modally with option UIModalPresentationOverCurrentContext 【发布时间】:2016-04-25 23:12:42 【问题描述】:

我正在重新创建一个弹出式视图控制器。 在下面的实现中,我正在实例化一个视图控制器,然后使用选项UIModalPresentationOverCurrentContext 以模态方式将其呈现在其父 VC 上。

我想减小帧大小,以使新的视图控制器看起来更像一个弹出窗口,但帧大小不断被覆盖。我还尝试在其-viewWillAppear-viewDidLoad 方法中设置视图控制器的帧大小,但没有任何变化。有什么想法吗?

UIStoryboard* popStoryboard = [UIStoryboard storyboardWithName:@"XXX" bundle:nil];
UIViewController* popViewController = [storyboard instantiateViewControllerWithIdentifier:@"XXXXXX"];

popViewController.modalPresentationStyle = UIModalPresentationOverCurrentContext;
popViewController.view.frame = CGRectMake(0, 0, 400, 450);

[[self topMostViewController] presentViewController:popViewController animated: YES completion: nil];

【问题讨论】:

子类 UIView,创建自定义 UIView 作为视图控制器的视图,在“loadview”方法中加载视图,在自定义子类中,通过添加其他 uiview 来调整视图的大小,等等……赢 【参考方案1】:

您正在使用名为popViewController 的指针变量实例化视图控制器,但您更改了视图的框架并呈现了一个名为viewController 的指针变量。

【讨论】:

不错的收获。但这实际上不是问题。我必须在将代码粘贴到此处之前更改我的代码,并且我没有重命名最后两个语句。 是的,我认为这是一个错字之类的。

以上是关于使用选项 UIModalPresentationOverCurrentContext 减小模态显示的 uiviewcontroller 的帧大小的主要内容,如果未能解决你的问题,请参考以下文章

如何在具有自定义选项卡 UI(不使用选项卡栏)的 UITabBarController 中删除“更多”选项卡

使用关闭按钮切换引导选项卡

使用jQuery制作选项卡效果

如何使用 jQuery 切换选项卡,而不关闭相邻的选项卡。

使用 Bootstrap 导航选项卡从另一个选项卡跳转到特定选项卡

jQuery Select2 - 使用选项卡选择一个选项