我有一个简单的应用程序,它有两个视图控制器。它们都在顶部有一个UINavigationBar作为标题。当用户点击第一个按钮时,第二个UIViewController显示为模态视图。
当我的应用程序首次启动时,初始视图并未完全覆盖主UIView,并且似乎“推”到顶部(见下图)。
点击“说明”按钮后,显示另一个带有presentModalViewController:animated:的视图,并关闭模态ViewController,一切都正确显示。
有人知道我可能做错了吗?
我在viewWillAppear中没有任何内容,这是我的viewDidLoad
- (void)viewDidLoad {
[super viewDidLoad];
if (!self.model) {
self.model = [[FRRSushiRiceModel alloc] init];
[[self.header.items objectAtIndex:0] setTitle: @"Perfect Sushi Rice: Ingredients"];
}
}
和我的应用程序:didFinishLaunchingWithOptions:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Create and add the main controller (ingredients)
self.ingredientsController = [[FRRIngredientsViewController alloc] init];
[window addSubview:self.ingredientsController.view];
[window makeKeyAndVisible];
return YES;
}
这个小项目重现了这种行为: Test Case
答案 0 :(得分:3)
您是否取消了IB中的“想要全屏”设置,UINavigationController
或UIViewController
?
答案 1 :(得分:1)
我发现了错误,伙计。
基本上我相信系统正确设置我的视图框架以匹配屏幕的可用部分。当您将其添加到控制器的某个控制器(例如UINavigationController)或通过IB添加它时,这种方法有效。
如果以编程方式添加控制器,则需要显式设置视图的框架。一个很好的默认值是:
[[UIScreen mainScreen] applicationFrame]
表示应用程序可用屏幕的一部分:整个屏幕减去状态栏。