【发布时间】:2012-09-25 06:11:43
【问题描述】:
有人能解释一下 iOS 在界面旋转方面做了什么吗?我的一个视图在旋转 iPhone 后消失了。似乎视图设置了一个新的框架、边界或其他什么,不知道。无论如何,一旦布局问题永远消失了,界面旋转后。所以必须在界面旋转时为视图设置一些东西。
我正在从 NIB 文件加载视图并使用导航控制器显示它:
BirthdayReminderWidgetConfigViewController *vc = [self.storyboard
instantiateViewControllerWithIdentifier:@"BirthdayConfigController"];
self.navigationController pushViewController:vc animated:true];
也许我必须做一些设置才能在不旋转界面的情况下正确显示视图。
我遇到了从 nib 文件加载的视图的布局问题,如下所示:
该项目包含一个 MainStoryboard。在其中,我从 nib 文件加载视图。
NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@"View" owner:self options:nil];
self.configViewController = [xib objectAtIndex:0];
故事板有一个导航控制器,加载的视图如下所示:
if (currentWidgetConfigViewController != nil)
{
[self.navigationController pushViewController:currentWidgetConfigViewController animated:true];
}
所以在我看来没有错吗? (第一个问题) 但是现在问题来了。
我的设计是这样的:
iOS 的作用如下
控件排列得不好。
除此之外,我还使用新视图上的按钮打开了一个带有该代码的 PeoplePicker:
[self presentViewController:self.picker animated:YES completion:nil];
使用[self.picker dismissViewControllerAnimated:true completion:nil]; 关闭人员选择器后,我得到了以下结果:
那么这里出了什么问题?
【问题讨论】:
-
每次视图自行旋转时,您都必须更改视图框架。由于横向视图的高度小于纵向模式,因此,如果您的任何视图横向低于 320 或纵向超过 320 ,它一定是隐藏的。希望对你来说足够清楚。
标签: iphone objective-c ios uiview uinavigationcontroller