ios 尽量用 [UIApplication sharedApplication].delegate.window

本文讨论了iOS开发中使用UIWindow的两种方式,并指出将UIWindow*window=[UIApplicationsharedApplication].keyWindow替换为UIWindow*window=[UIApplicationsharedApplication].delegate.window可能带来的问题,特别是当使用UIActionSheet时导致的界面无响应现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


代码中用到UIWindow *window = [UIApplication sharedApplication].keyWindow 统一修改成UIWindow *window = [UIApplication sharedApplication].delegate.window,会被uiactionsheet影响,只要任何一个地方弹过actionsheet, 页面就死掉不能操作了

### iOS 开发中使用 Objective-C 配置 LaunchScreen.storyboard 的方法 为了在 iOS 应用程序中正确配置 `LaunchScreen.storyboard` 作为启动页,以下是详细的说明: #### 1. 使用 Xcode 进行基础设置 在 Xcode 中,确保项目的配置满足以下条件: - 打开项目,在 **Targets** 下的 **General** 页面找到 **App Icons and Launch Images** 部分。 - 将 **Launch Screen File** 设置为 `LaunchScreen` 文件名[^2]。 #### 2. 删除旧版启动图片配置 如果之前使用的是基于资产目录(Asset Catalog)的方式加载启动图片,则需要移除这些配置以避免冲突。具体操作如下: - 转至 **Build Settings** 并搜索关键词 `asset catalog launch image set name`。 - 如果存在名为 `LaunchScreen` 或其他相关内容的字段值,请将其清空并保存[^3]。 #### 3. 编辑 LaunchScreen.storyboard 文件 通过 Interface Builder 对该 storyboard 添加自定义 UI 组件来增强视觉效果。例如可以加入应用 Logo 图片视图 (`UIImageView`) 和品牌文字标签 (`UILabel`) 等元素[^4]。 #### 4. 实现动态逻辑处理 (可选) 虽然静态展示已经完成,但如果希望进一步扩展功能比如延迟进入主界面或者显示广告等内容,则可以在 AppDelegate.m 文件中的 `-application:didFinishLaunchingWithOptions:` 方法里调用相应函数实现业务需求: ```objective-c -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; // 初始化根控制器 UIViewController *rootVC = [[UIViewController alloc] init]; rootVC.view.backgroundColor = [UIColor whiteColor]; UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:rootVC]; self.window.rootViewController = navController; [self.window makeKeyAndVisible]; // 可在此处执行额外初始化工作, 如网络请求预取数据等. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ NSLog(@"模拟两秒后的动作"); // 动态页面跳转逻辑 [self setupStartPageView]; }); return YES; } // 自定义方法用于呈现特定内容给用户查看一段时间后再切换到主页或其他位置 -(void)setupStartPageView{ UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; UIViewController* startPageVC = [storyBoard instantiateInitialViewController]; UIWindow *keyWindow = [[[UIApplication sharedApplication] delegate] window]; keyWindow.rootViewController = startPageVC; } ``` 上述代码片段展示了如何利用延时机制控制从启动画面过渡到应用程序主要区域的过程[^1]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值