Невозможно изменить размер окна UIWindow

Я пытаюсь добавить новое окно поверх моего текущего, в приложении iPad, но я не могу понять, почему он всегда представляется полноэкранным. Я использую этот код:

UIWindow *window = [[UIWindow alloc]initWithFrame:CGRectMake(0, 0, 20, 20)];


[window setFrame:CGRectMake(0, 0, 20, 20)];
ArrowController *controller = [[ArrowController alloc]initWithNibName:@"ArrowController" bundle:nil];   

[window setRootViewController:controller];    
[window setHidden:NO];

[controller release];

независимо от того, какой размер я установил на его рамке, я всегда получаю окно полноэкранного размера. Пожалуйста, посоветуйте, спасибо.

2 ответов


приложения iOS должны иметь только один объект UIWindow.

вероятно, вы должны установить кадр в UIView viewController и добавить его в качестве подвида.


чтобы изменить рамку другого UIWindow вы добавляете, вы должны init окно с рамкой вы хотите:

self.myNewWindow = [[UIWindow alloc] initWithFrame:CGRectMake(10, 10+20, 300, 440)];

установите для клипов свойств bounds значение active:

[self.myNewWindow setClipsToBounds:YES];

а затем, после установки вашего rootViewController в новое окно, установите его рамку тоже:

self.myNewWindow.rootViewController = self.fooViewController;
[self.myNewWindow makeKeyAndVisible];

self.fooViewController.view.frame = CGRectMake(0, 0, 300, 440);

это работает на iPhone и iPad.