Как добавить представление в UIWindow?
Я хотел добавить представление в UIWindow
со следующим кодом:
AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
UIWindow *window = delegate.window;
UIView *aView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
aView.backgroundColor = [UIColor blackColor];
[window addSubview:aView];
Этот код не работал. Я хотел клонировать свойство UIAlertView. Когда мы позвоним, оно всплывет поверх всего[alertViewInstance show];
метод.
Пробовал и это:
UIView *aView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
UIWindow* window = [UIApplication sharedApplication].keyWindow;
if (!window) {
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
[window addSubview:aView];
[window bringSubviewToFront:aView];
8 ответов
Если вы используете UINavigationController
Использование:
[self.navigationController.view.window addSubview:aView];
Если вы используете UITabBarController
Использование:
[self.tabBarController.view.window addSubview:aView];
В AppDelegate
Вы можете напрямую назначить вид на окно. В appDelegate
didFinishLaunchingWithOptions
Использование метода:
[self.window addSubview:aView];
Надеюсь, поможет...
Попробуйте с этим кодом:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIWindow* window = [UIApplication sharedApplication].keyWindow;
if (!window) {
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
aView.backgroundColor = [UIColor redColor];
aView.center = window.center;
[window insertSubview:aView aboveSubview:self.view];
[window bringSubviewToFront:aView];
}
Попробуйте этот код:
window = [[UIApplication sharedApplication].windows lastObject];
Замените следующий код:
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
Вы можете добавить вид, используя следующие
[[[UIApplication sharedApplication] keyWindow] addSubview:YOUR_VIEW];
Ваши окна должны иметь контроллер корневого представления.
AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
UIWindow *window = delegate.window;
UIViewController *controller = [[UIViewController alloc] init];
window.rootViewController = controller;
UIView *aView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
aView.backgroundColor = [UIColor blackColor];
[controller.view addSubview:aView];
UIAlertView создает другое окно UIWindow и устанавливает это окно как ключевое окно при вызове метода show. Поэтому, если вы хотите показать свое собственное представление предупреждений, создайте экземпляр UIWindow, покажите его и добавьте свое настраиваемое представление предупреждений в это вновь созданное окно.
Я думаю, что вы упускаете это. проверьте один раз.
[self.window makeKeyAndVisible];
Вы можете попробовать код ниже... для добавления подпредставления в окно
UIView *aView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
aView.backgroundColor = [UIColor blackColor];
[[UIApplication sharedApplication].keyWindow addSubview:aView];
// Удаление
[aView removeFromSuperview];
Надеюсь, это поможет вам!