次のコードを使用して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];
UINavigationController
を使用している場合:
[self.navigationController.view.window addSubview:aView];
UITabBarController
を使用している場合:
[self.tabBarController.view.window addSubview:aView];
AppDelegate
では、ウィンドウに直接ビューを割り当てることができます。 appDelegate
didFinishLaunchingWithOptions
メソッドで:
[self.window addSubview:aView];
それが役に立てば幸い...
このコードを試してください:
window = [[UIApplication sharedApplication].windows lastObject];
次のコードを置き換えます。
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
このコードで試してください:
- (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];
}
ウィンドウにはルートビューコントローラーが必要です。
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];
以下を使用してビューを追加できます
[[[UIApplication sharedApplication] keyWindow] addSubview:YOUR_VIEW];
以下のコードを試してみてください...サブビューをウィンドウに追加するために
UIView *aView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
aView.backgroundColor = [UIColor blackColor];
[[UIApplication sharedApplication].keyWindow addSubview:aView];
//削除
[aView removeFromSuperview];
お役に立てば幸いです。
あなたはこれを見逃していると思います。一度確認してください。
[self.window makeKeyAndVisible];
UIAlertViewは、別のUIWindowを作成し、showメソッドを呼び出すときにこのウィンドウをキーウィンドウとして設定します。したがって、独自のアラートビューを表示する場合は、UIWindowインスタンスを作成してそれを表示し、カスタムアラートビューをこの新しく作成されたウィンドウに追加します。