【问题标题】:Can't Resize UIViewController After Presenting Over UITabBarController通过 UITabBarController 呈现后无法调整 UIViewController 的大小
【发布时间】:2013-09-30 07:50:22
【问题描述】:

我有一个 UIViewController,我想在我的 UITabBarController 上显示它,有点像自定义 UIAlertView。问题是,当我展示 UIViewController 时,我无法调整其视图的大小以适应当前正在使用的任何屏幕。 UIViewController(ShareViewController 是它的名字)是使用 .xib 文件设计的,目前使用的是 iPhone 5 的屏幕高度。如果应用程序在任何设备上运行,我基本上只是想调整其 UIView(视图)的大小,但是当我调用 setFrame 时它不起作用。

这里有一些代码:

ShareViewController * svc = [[ShareViewController alloc] initWithNibName:@"ShareViewController" bundle:nil];
self.tabBarController.modalPresentationStyle = UIModalPresentationCurrentContext;
[self.tabBarController presentViewController:svc animated:NO completion:nil];
[svc.view setFrame:[[UIScreen mainScreen] applicationFrame]];

我使用“UIModalPresentationCurrentContext”设置,以便可以显示具有透明背景的 ShareViewController。因此,当我运行此代码时,ShareViewController 刚刚被添加,但由于它仍处于 iPhone 5 的显示高度而离开屏幕。

如何调整 ShareViewController 主视图的大小?

【问题讨论】:

    标签: ios objective-c


    【解决方案1】:

    而不是 presentviewcontroller 最好将其设置为 addsubview 并像当前模态视图控制器一样应用动画

    【讨论】:

    • 当我尝试时,这似乎没有什么不同。然而,我后来意识到我可以给按钮组一个容器视图,我可以向上移动而不是尝试重新调整所有内容的大小。这是一个快速的肮脏修复,但它有效。谢谢。
    【解决方案2】:

    我给按钮组一个容器,然后我根据屏幕中心向上翻译。这是一个 hack 修复,但我认为有更好的方法来实现这个自定义 UIViewController。

    【讨论】:

    • 你找到更好的方法了吗? iOS 8 对此有何改变?
    • 哇,很抱歉错过了您的评论。不,我没有找到新方法,抱歉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    相关资源
    最近更新 更多