我创建了一个简单的 iPhone 应用程序,它有两个 .xib 文件。在应用程序的应用程序委托完成启动我通过调用显示第一个 .xib 文件:
[window addSubview:myView];
我在 IBAction 上为 UIButton 执行相同操作以将视图更改为 myView2。
我发现当我运行应用程序时,两个视图都有一个大约 10 像素的白条。我还注意到按钮偏移了 10 个像素(大约)。所以我得到的印象是视图是从屏幕外 10 像素处显示出来的,并且很短。
知道为什么会发生这种情况,如何修复它,或者如何进一步调试正在发生的事情?我检查了我的 .xib 文件,它们占用了设备的整个高度(即没有白条),所以这看起来是 XCode 内部的一个问题。
编辑:我已经缩小了问题的范围。我正在使用两种方法来加载子视图。当我在里面加载第一个视图时,applicationDidFinishLaunching
一切都很好。window
但是,如果我用方法替换这两条消息[self originalView]
,那么一切都会变得有点混乱。
- (void)applicationDidFinishLaunching:(UIApplication *)application {
//[self originalView]; <- I want to use this instead of the following two lines
// Override point for customization after app launch
[window addSubview:viewController.view];
[window makeKeyAndVisible];
}
-(void)endView{
endV = [[EndViewController alloc] initWithNibName:@"EndView" bundle:nil];
[window removeFromSuperview];
[window addSubview:endV.view];
}
-(void)originalView{
viewController = [[MyAppViewController alloc] init];
[window removeFromSuperview];
[window addSubview:viewController.view];
}
据我所见,我总是调用相同的代码行,无论它是在内部applicationDidFinishLaunching
还是内部,[self originalView]
但似乎window
变成了一个不同的对象。