在iOS开发中,可以通过等待加载ViewController直到AppDelegate函数申请完成的方式来实现延迟加载的效果。以下是一种常见的实现方法:
var isRequestCompleted = false
viewDidLoad
方法中:override func viewDidLoad() {
super.viewDidLoad()
// 循环等待申请完成
while !((UIApplication.shared.delegate as? AppDelegate)?.isRequestCompleted ?? false) {
RunLoop.current.run(mode: .default, before: Date.distantFuture)
}
// 申请完成后执行相应操作
// ...
}
isRequestCompleted
属性设置为true
。例如,在application(_:didFinishLaunchingWithOptions:)
方法中:func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// 进行申请操作
// ...
// 申请完成后设置标记
isRequestCompleted = true
return true
}
这样,当AppDelegate函数申请完成后,ViewController中的循环将结束,继续执行后续操作。
需要注意的是,这种方式可能会导致界面卡顿,因为循环等待会阻塞主线程。因此,建议在实际开发中,根据具体需求和场景选择合适的延迟加载方式,例如使用异步操作、回调函数等。
领取专属 10元无门槛券
手把手带您无忧上云