Я создал простое приложение для iPhone, в котором есть два файла .xib. В том случае, когда делегат приложения завершил запуск, я отображаю первый файл .xib, вызывая:
[window addSubview:myView];
и я делаю то же самое на IBAction для кнопки UIB, чтобы изменить представление на 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
оказывается другим объектом.