sharedApplication] keyWindow] endEditing:YES]; [[UIApplication sharedApplication] sendAction:@selector...{ [activityIndicatorView_ stopAnimating]; [[[UIApplication sharedApplication] keyWindow...] endEditing:YES]; [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder)...sharedApplication] keyWindow] endEditing:YES]; } // update by zhangyi -(void)navigationController:...sharedApplication] keyWindow] endEditing:YES]; [[UIApplication sharedApplication] sendAction
[[UIApplication sharedApplication].keyWindow addSubview:statusBar]; } else { //...sharedApplication].keyWindow.windowScene.statusBarManager.statusBarFrame; }...但是如果有状态是有透明或者半透明的效果,上面这个方法还是不能胜任,越透明越明显;经过一番查找,终于发现问题: 问题: 1、iOS 13之前,可以通过valueForKey 获取UIApplication...的statusBar,因为UIApplication是单例,因此,在iOS 12,通过: [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow...sharedApplication].statusBarFrame]; [[UIApplication sharedApplication].keyWindow addSubview
[UIApplication sharedApplication].keyWindow为UIWindow对象。...比如,获取APP的keyWindow并往上添加视图的代码: [[UIApplication sharedApplication].keyWindow addSubview:self.signView];...sharedApplication].keyWindow.rootViewController; UINavigationController *nav = nil; if ([rootVC...比如,你如果想通过[[UIApplication sharedApplication] keyWindow]获取正在显示的UIWindow是极其不准确 的。...sharedApplication].keyWindow; [keyWindow addSubview:self]; 这段代码的目的是添加到最上层UIWindow,但实际操作是把自己的视图添加到keyWindow
1 实现思路 通过最底层的ViewController依次向上寻找,直到找到最顶层的ViewController,也就是从UIApplication的keyWindow的rootViewController...sharedApplication].keyWindow rootViewController]]; while (resultVC.presentedViewController) {...[UIApplication sharedApplication].keyWindow.rootViewController获取到的是项目的根视图,结合可能用到UITabBarController或者UINavigationController...ps: 如果是需要push新的视图,就非常简单了。用上面的方法获取到顶层的视图,判断currentVC.navigationController是否为nil。...sharedApplication].keyWindow.rootViewController; UIViewController *controller = [self getCurrentVCFrom
- (UIViewController *)getCurrentVC { UIViewController *result = nil; UIWindow * window = [[UIApplication...sharedApplication] keyWindow]; if (window.windowLevel !...= UIWindowLevelNormal) { NSArray *windows = [[UIApplication sharedApplication] windows];...; UIWindow * window = [[UIApplication sharedApplication] keyWindow]; if (window.windowLevel !...= UIWindowLevelNormal) { NSArray *windows = [[UIApplication sharedApplication] windows]; for(UIWindow
app在iOS11下存在一个bug是点击图片不能显示大图调试发现是因为在iOS11上把大图添加到window上之后不显示 for (int i = [UIApplication sharedApplication...[i]; if (window.frame.size.width == [UIApplication sharedApplication].keyWindow.size.width &&...window.frame.size.height == [UIApplication sharedApplication].keyWindow.size.height) { lastFullWindow...中添加其它内容,可以直接修改为UIApplication sharedApplication.keyWindow,或者对window的hidden属性进行判断,向下遍历直到获得可以显示出来的全屏window...sharedApplication].keyWindow.size.width && window.frame.size.height == [UIApplication sharedApplication
sharedApplication].keyWindow.rootViewController;...sharedApplication].keyWindow.rootViewController; while (1) { //根据不同的页面切换方式,逐步取得最上层的viewController...sharedApplication].keyWindow.rootViewController; myTbabar.selectedIndex = 2;...sharedApplication].keyWindow.rootViewController;...sharedApplication] unregisterForRemoteNotifications];//关闭 }else { [[UIApplication sharedApplication
iOS7、iOS9、iOS10 UIApplication *app = [UIApplication sharedApplication]; // 应用程序右上角数字 app.applicationIconBadgeNumber...]; [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; UIApplication *app...= [UIApplication sharedApplication]; // 应用程序右上角数字 app.applicationIconBadgeNumber = 0; **注意:清除数字请将数字设置为...afterDelay:.3f]; } return YES; } 关于动态效果 - (void)show { UIWindow *keyWindow = [UIApplication...sharedApplication].keyWindow; [keyWindow addSubview:self]; # _paymentAlert 是白色的视图,起始设置放大效果。
解决方案: [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault; if(@available...(iOS 13.0, *)){ [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDarkContent...5.KVC获取状态栏(_statusBar)会导致崩溃,目的是为更改状态栏背景色 ?...原因: UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey...:@"statusBar"]; 解决方案: UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow; UIView *
@property(nonatomic) NSInteger applicationIconBadgeNumber; UIApplication *app=[UIApplication sharedApplication...*app=[UIApplication sharedApplication]; //设置指示器的联网动画 app.networkActivityIndicatorVisible=YES; 三、管理状态栏...什么是keyWindow,官方文档中是这样解释的"The key window is the one that is designated to receive keyboard and other...翻译过来就是说,keyWindow是指定的用来接收键盘以及非触摸类的消息,而且程序中每一个时刻只能有一个window是keyWindow。...这说明UIWindow在显示的时候是不管KeyWindow是谁,都是Level优先的,即Level最高的始终显示在最前面。
这个方法是发生在翻转开始之前。一般用来禁用某些控件或者停止某些正在进行的活动,比如停止视频播放。...animated:NO]; [self setNeedsStatusBarAppearanceUpdate]; } [UIApplication sharedApplication].keyWindow.windowLevel...sharedApplication].statusBarHidden = YES; [UIApplication sharedApplication].keyWindow.windowLevel...= UIWindowLevelAlert; [[UIApplication sharedApplication].keyWindow addSubview:weakSelf.playerView...= UIInterfaceOrientationLandscapeRight) { [[UIApplication sharedApplication] setStatusBarOrientation
].delegate.window; UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow; 这里面delegateWindow...和keyWindow的区别你是否了解?...UIApplication,代表的是整个应用做的事,因此每个程序只能有一个,系统使用的是单例模式,就是上面的[UIApplication sharedApplication]来得到一个实例。...(2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示。...UIApplication对象,打印地址可以看出地址是相同的)。
// 显示广告 - (void)showAdFinished:(YDWAdvertViewDidFinishedBlock)finishedBlock{ [self showAdInView:nil...aView) { aView = [UIApplication sharedApplication].keyWindow; } [YDWAdvertView showInView...aView) { aView = [UIApplication sharedApplication].keyWindow; } [aView addSubview:self...date] andKey:kYDWKeyUserDefaultAdLaunch]; [YDWAdvertMgr showAdInView:[UIApplication...sharedApplication].keyWindow finished:^(BOOL toAdPage) { if (toAdPage) {
不过庆幸的是,空间代码大部分都用宏来获取状态栏高度,然后我们现在将宏改为通过函数返回高度即可,如下图所示。...CGFloat qzLib_getStatusBarHeight() { return [UIApplication sharedApplication].statusBarFrame.size.height...sharedApplication].keyWindow.safeAreaInsets.bottom; } return homeBarHeight; } 关于底部区域中一些toolbar...应用启动时,在初始化rootViewController的过程中,通过[UIApplication sharedApplication].keyWindow获取的keywindow是nil,这时window...还未makeKeyAndVisible,因此获取homeIndicator高度改用 [UIApplication sharedApplication].delegate.window。
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"nihao://"]]; }else{ NSLog(@"...sharedApplication].keyWindow.rootViewController; if ([url.absoluteString containsString:@"one"])...说明 AppB是跳转过来的应用App-B的URL Schemes; One是用来区别跳转页面的标识; ?...是分割符; AppA是跳转回的应用App-A的URL Schemes 2、我们根据传递来的数据,进行反跳回去。...sharedApplication].keyWindow.rootViewController; if ([url.absoluteString containsString:@"one"])
其实这些APP的启动页是没有消失的,你去认真的观察一下!所以它们的顺序就变成了 点击 —> 启动页 —> 广告 下面是我截的QQ音乐的顺序图。不知道怎么弄GIF图。?...还有一点,这个广告是缓存了的,你试着启动几次,它会给你不同的启动广告的,完事了,你把你的4G和Wifi都关掉,然后再去启动相应的APP,广告依旧是会出现的。。...sharedApplication].keyWindow addSubview:self]; [[UIApplication sharedApplication].keyWindow...爱奇艺,QQ音乐的广告是缓存了的!...sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade]; AdvertisingViewController
大家好,又见面了,我是全栈君。...= nil) { [((UIButton *)[self viewWithTag:200]) setTitle:firstTitle forState:..._backgroundView.backgroundColor = [UIColor blackColor]; _backgroundView.alpha = 0.3; [[UIApplication...sharedApplication].keyWindow addSubview:_backgroundView]; [[UIApplication sharedApplication].keyWindow...; self.firstBlcok = nil; self.secondBlock = nil; self.thirdBlock = nil;
msg{ dispatch_async(dispatch_get_main_queue(), ^{ switchHud = [MBProgressHUD showHUDAddedTo:UIApplication.sharedApplication.keyWindow...info{ dispatch_async(dispatch_get_main_queue(), ^{ switchHud = [MBProgressHUD showHUDAddedTo:UIApplication.sharedApplication.keyWindow...});}// 显示警告对话框+ (void)showAlert:(UIAlertController*)alert { static dispatch_queue_t alertQueue = nil...presenting) { dispatch_sync(dispatch_get_main_queue(), ^{ UIViewController* vc = UIApplication.sharedApplication.keyWindow.rootViewController
= [UIFont fontWithName:@"Courier" size:4]; } [self initCADisplayLink]; [[self keyWindow...] addSubview:self.displayLabel]; } -(UIWindow*)keyWindow { UIWindow *foundWindow = nil; NSArray...*windows = [[UIApplication sharedApplication]windows]; for (UIWindow *window in windows) {