-(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);