在iOS
中要弹出和Android
中Toast
差很少的提示,并不困难,也有着诸多的第三方库能够使用,可是有些时候咱们仍是须要本身看一下如何进行实现,好比咱们最近的需求,须要在应用进入前台时弹出一个提示,提示中包含有可点击的按钮,那么大部分的第三方库就不支持了。objective-c
其实这个问题并不复杂,反而很是简单,由于只须要找到最顶层的window
,把咱们要进行弹窗的UIView
加上去就能够了。而获取顶层window
的代码以下:windows
- (UIWindow *)getTopWindow { UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow; if (!keyWindow) { // 有可能keyWindow不存在 keyWindow = [UIApplication sharedApplication].windows.firstObject; } return keyWindow; }
调用这个方法,就能够获取到顶层window
,获取到以后,就能够使用addSubview:
添加自定义的View了,不要忘记在添加以后,使用bringSubviewToFront:
把自定义View放在最上层。markdown
UIWindow *topWindow = [self getTopWindow]; [topWindow addSubview:customView]; [topWindow bringSubviewToFront:customView];
如此就能够实现咱们弹出含有Button
的UIView
的需求了。spa
注意:不要在viewDidLoad
中进行弹窗,有可能会没法弹出,由于这个View尚未出现,当它出现时可能会盖住弹出的View。code
至于弹出以后如何进行消失,只须要一个dispatch_after
就能够了,这里也就再也不多说。blog