【问题标题】:presentModalViewController slides a new view too far up and goes above the top of the screenpresentModalViewController 将新视图向上滑动并超出屏幕顶部
【发布时间】:2012-04-13 15:51:08
【问题描述】:
-(void)reviewClicked:(id)sender
{
    ReviewViewController *newView = [[ReviewViewController alloc] init];
    newView.delegate = self;
    UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:newView];
    [self presentModalViewController:navCon animated:YES];
}

我有一个 splitViewController 设置,这可能会导致一些问题。在详细视图控制器中,我有一个按钮,单击该按钮会调用上述代码。

目标是从屏幕底部向上滑动视图,以便用户查看他们的选择,然后单击按钮返回到原始详细视图。此代码正在运行,您可以在模式视图和原始详细视图之间来回单击。

问题是,在它向上滑动屏幕后,它继续滑过它应该停止的位置,最后停止了 10-15 像素。基本上,这个模态视图会向上滑动,以至于很大一部分视图超出了屏幕顶部。同时,相同数量的空间是屏幕底部的“空白黑色空间”,进一步表明视图只是向上移动了太远。

复杂的事情,它在横向模式下滑动得很好。

所以问题是,有谁知道为什么会出现这个错误,导致模态视图向上滑动太多并超过屏幕顶部?

-=-=-=-=-=-=-

编辑: 抱歉,我打算在那个地方输入 navCon。我在上面修好了。

-=-=-=-=-=-=-

解决方案:

-(void)reviewClicked:(id)sender
{
    ReviewViewController *newView = [[ReviewViewController alloc] init];
    newView.delegate = self;
    UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:newView];
    navCon.view.frame = CGRectMake(0, 0, 768, 1080);
    [self presentModalViewController:navCon animated:YES];
}

经过反复试验,我意识到我从未真正设置过视图的框架!一个如此简单的解决方案...我一直在运行包含 .xib 文件的示例,并且由于这些文件自动创建了框架,因此我完全忽略了它!

请记住,以后看到此内容的任何人。此框架仅适用于纵向模式。如果你想要横向模式,只需相应地修改框架:

navCon.view.frame = CGRectMake(0, 0, 1080, 768);

【问题讨论】:

  • 我没试过,但[self presentModalViewController:navCon animated:YES]; 有什么用吗? (通常你想展示“拥有”的控制器。)

标签: objective-c uisplitviewcontroller modalviewcontroller presentmodalviewcontroller


【解决方案1】:

尽管我已经找到了问题中描述的快速解决方案。事实是,仍然存在许多问题。经过进一步检查,我调用了 appDelegate 来调用这些方法:

[self.splitViewController presentModalViewController:navCon animated:YES];
[self.splitViewController dismissModalViewControllerAnimated:YES];

基本上,我让根视图类调用模态视图,它解决了我的所有问题。显然,从 splitview 的详细视图中调用模态视图与从根视图(恰好是 splitViewController)调用模态视图不同。我希望这对将来的任何人都有帮助。干杯。

-=-=-=-=-=-=-=-

有关更多参考,请参阅我偶然发现的这篇文章:

UISplitViewController - Pushing Modal View

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多