我正在深入研究 iOS 开发,并且正在构建一款益智游戏来帮助我熟悉该平台。我让 AdWhirl 在用户完成拼图时显示的得分屏幕中显示广告。问题是,分数屏幕 View Controller 至少需要几秒钟来请求和接收广告,在此期间用户查看分数并移动到不同的 View 。我打算实现一个动画,当用户解决一个谜题时出现,动画完成所需的时间将是请求和接收将在下一个(分数) View 中显示的广告的好时机用户也会被带走。
在解谜动画播放期间,如何预加载下一个 View Controller ,以便在将 View Controller 推送到导航堆栈时显示广告?如果这是不可能的,或者如果这是一个坏主意,您对我如何在动画播放时请求和接收广告有什么建议吗?
非常感谢您的智慧!
注意:对于不熟悉 AdWhirl 的人来说,请求和接收广告的过程很简单。在您希望广告出现的 View Controller 的 viewDidLoad 方法中,您创建一个 AdWhirlView(UIView 的子类),将其添加为 subview ,然后调用请求广告的方法。当广告到达时,它调用委托(delegate)方法在父 View 中显示它。
最佳答案
仅使用 [viewController loadView] 有一个副作用,即 View 加载后不会自动调用 viewDidLoad。
要正确执行并确保调用 viewDidLoad,您可以使用实例化 UIViewController 的 View ,而不是自己调用 loadView
UIView *view = myViewController.view;
或
UIView *view = [myViewController view];
这将同时调用 loadView(如果 View 尚未加载),然后在 View 完成加载时调用 viewDidLoad。
关于iphone - iOS 开发 : How can I preload a view controller before pushing it onto the navigation stack?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4484396/