【问题标题】:presentModalViewController:animated:NO displaying 20 pixel gap目前模态视图控制器:动画:不显示 20 像素间隙
【发布时间】:2011-07-13 21:39:33
【问题描述】:

我从一个基于视图的应用模板开始。在自动创建的 viewcontroller 的 xib(称为 VC1)中,我添加了一个按钮,并在其接口/实现中定义:

- (IBAction)showVC2;

- (IBAction)showVC2 {
      [self presentModalViewController:[[VC2 alloc] init] animated:NO];
}

然后我创建 VC2。在这两种实现中,我只允许横向。在两个 xib 中,我将视图设置为横向。在 info.plist 文件中,我将起始方向指定为横向。

当我在模拟器中运行项目并按下 VC1 中的按钮时,会显示 VC2,but a 20 pixel gap shows both on the lower edge and on the right edge. 值得注意的是,旋转会导致视图在旋转完成后正确放置在屏幕上。

此问题与其他问题类似: 123,尽管确定的解决方案在目前的情况下似乎不起作用。如果模态视图带有动画,则会发生正确/预期的行为(但是我不希望过渡动画)。这个问题自去年夏天以来一直存在(iOS 3.1.3?)。它继续 4.3。纵向不会出现此问题。

谁能提供一个解决方案或解释为什么这样一个简单的模态视图控制器演示没有给出预期的结果?

编辑:Xcode project

【问题讨论】:

    标签: iphone uiviewcontroller


    【解决方案1】:

    我只是尝试构建您建议的内容,并且没有任何差距。我不知道您是否可以发布所有代码或项目。如果你能做到,我会尽力提供帮助。

    【讨论】:

    • 嗨 Jamie,我已经编辑了我的问题以包含指向 Xcode 项目的链接。
    • 谢谢。实际上,我看到当我将动画设置为 NO 时,它会按照您的说明显示。是否有理由需要以模态方式呈现视图控制器?你不能只做 [self.view addSubview:secondViewCont.view]; ?
    • :-( 我希望我做了一些愚蠢的事情。我当然可以按照建议做并将我的第二个视图添加为子视图;事实上,我之前就开始这样做了。但是如果我有 n 个视图,然后我的 rootViewController 必须处理那些 n 个视图,加上它自己的。这似乎否定了 UIViewController 的实用性。或者,我可以创建对象来管理视图,以便对视图的控制更适当地分布,但似乎我正在重新发明轮子(即 UIViewController)。我还没有找到我正在尝试的示例。你知道吗?
    • 我不确定你的意思。以模态方式呈现视图的目的是在处理模态视图之前禁用所有其他输入。它被呈现然后被解雇。如果您要放置一堆全屏视图,那么您可能希望每个视图都有自己的控制器,当然,这取决于每个视图在做什么。
    • 没错。由于我没有使用选项卡或导航控制器,因此我需要一种结构化的方式来显示不同(完整)的内容屏幕。似乎最自然的方法是让 rootViewController(示例中为 VC1)能够显示模态视图(VC2、VC3 等)。将 VC2 想象成一个带有“新建”、“打开”、“保存”、“电子邮件”等选项的菜单屏幕。用户做出选择,然后 VC2 被 VC1 关闭,下一个视图/视图控制器由 rootViewController 呈现。这更清楚,还是我仍然没有意义?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 2015-09-09
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多