【发布时间】:2012-06-24 20:49:14
【问题描述】:
在我的应用程序中,一个 viewController 管理一个 UIWebView。是使用应用程序的主故事板创建的。此应用能够打开 rtf 电子邮件附件并将其显示到其 UIWebView。
当应用程序在后台时,一切正常。应用程序委托方法
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
被调用并且有一个方法
[viewController loadImportedRTFDocument:url];
被调用。控制器加载文档并显示它。
当用户在邮件应用程序中选择附件时应用程序不在后台时,它会正确启动。调用 App 委托 openURL,viewController 接收到加载导入文档的消息。但它无法显示它,因为 UIWebView 尚未分配(返回 nil 指针)。
我观察到的是,应用委托调用的方法是在控制器收到 viewDidLoad 消息之前生成的......
在这种情况下如何确定 viewController 已正确初始化,我应该在哪里要求 UIWebView 加载与 rtf 附件关联的 NSData 对象?
【问题讨论】:
-
你是要使用同一个viewController来显示所有的文档还是要为每个文档重新分配?
-
是的,为了节省内存,只有一个viewController处理一个UIWebView。控制器在必要时在视图中加载文档 html 内容。该视图应该在加载描述主视图界面的故事板文件时进行分配初始化。
标签: ios uiapplicationdelegate email-attachments