【iOS [[UIApplication sharedApplication] delegate]】运用

之前想要拿到app的窗口,我们通常的写法是:

[UIApplication sharedApplication].keyWindow

这种写法之前一直也觉得是正确的,没什么问题,而且网上大多数的博客或者资料中也是这样写的,但是最近在项目,发现这样写是不安全的,如果应用程序没有跳转,这种写法还算是可行的,但是如果应用程序出现了跳转(分享跳转到其他APP,访问系统相册等),这时返回原APP,你会发现加载原窗口上的视图位置会发生明显偏移,查阅了一些资料,发现如果写成

[[[UIApplication sharedApplication]delegate]window]

就不会出现上述问题,如果大家在项目中遇到此问题,不妨试试这种写法。

时间: 2024-10-29 19:08:14

【iOS [[UIApplication sharedApplication] delegate]】运用的相关文章

iOS UIApplication sharedapplication用法

应用中打开其他应用 我们来讨论一下,在iOS开发中,如何实现从app1打开app2. 基本的思路就是,可以为app2定义一个URL,在app1中通过打开这个URL来打开app2,在此过程中,可以传送一些参数.下面来讨论一下具体的实现过程. 1. 在app2的info.plist中定义URL,就是在文件中添加URL types一项.可按下图进行添加. 2. 在app1的代码中打开刚才定义的URL,代码如下: copy NSURL *url = [NSURL URLWithString:@]; [[

UIApplication sharedApplication详细解释-IOS

原文:http://blog.csdn.net/huifeidexin_1/article/details/7792371 iPhone应用程序是由主函数main启动,它负责调用UIApplicationMain函数,该函数的形式如下所示: int UIApplicationMain ( int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName ); 那么UIApplicationMain函

计算视图相对坐标时convertPoint:toView: ,UIApplication sharedApplication - keyWindow is nil?

UIWindow *window = [UIApplication sharedApplication].keyWindow; window 为nil的原因:在指定rootViewController之前,没有让window 先可视化 1.示例  为nil: self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; self.window.backgroundColor = [UIColor whit

ios UIApplication简单使用

每个app有且只有一个UIApplication对象,当程序启动的时候通过调用UIApplicationMain方法得到的.可以通过sharedApplication方法得到. UIApplication对象的主要任务是处理用户事件的处理路径,例如分发一个UIEvent到另外一个对象去处理.UIApplication对象持有众多的UIWindow对象,因此可以组织app的展示.UIApplication对象还能处理一些资源,例如通过openURL:打开邮箱客户端或者设置界面等. 获得UIAppl

OC中APPDelegate[[UIApplication shareApplication]delegate]]Swift实现

直接上代码: var myDelegate:AppDelegate? myDelegate = UIApplication.sharedApplication().delegate as? AppDelegate OC中APPDelegate[[UIApplication shareApplication]delegate]]Swift实现

[UIApplication sharedApplication].keyWindow 添加视图无效,解决方案。

在rootViewController中的viewDidLoad:方法中调用[[UIApplication sharedApplication].keyWindow addSubview:] 发现无效 调试发现[UIApplication sharedApplication].keyWindow 为nil 因为这个时候appdelegate中的keywindow还没有创建成功 我们可以用[[[UIApplication sharedApplication] delegate] window] 代

41-50(UIApplication和delegate,UIApplicationMain,UIWindow,程序启动的完整过程,控制器view的延迟加载)

41.UIApplication和delegate 42.UIPickerView 43.UIDatePicker 44.程序启动的完整过程 45.UIApplicationMain 46.UIWindow 47.如何创建一个控制器 48.控制器view的延迟加载 49.多控制器 50.UINavigationController的使用步骤 { 这几天一直在赶项目, 今天终于闲下来了! 今天是个好日子,空间里满天的2014520 那么来看看我们程序员的爱情吧! 爱情就是死循环,一旦执行就陷进去了

iOS UIApplication的代理方法总结

1.简介 1> 整个应用程序的象征,一个应用程序就一个UIApplication对象,使用了单例设计模式 2> 通过[UIApplication sharedApplication]访问这个单例对象 2.常见用法 1> 设置图标右上角的红色提示数字 app.applicationIconBadgeNumber = 10; 2> 设置状态栏的样式 app.statusBarStyle = UIStatusBarStyleBlackOpaque; 3> 控制状态栏的显示和隐藏 a

IOS UIApplication使用

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // UIApplication *app = [UIApplication sharedApplication]; // UIApplication *app1 = [UIApplication sharedApplication]; //// UIApplicat