我正在尝试在我的应用中打开.pdf文件。我修改了Info.plist,以便在我的应用程序中打开.pdf。
我使用以下代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
thePDFurl = (NSURL *)[launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];
return YES;
}
在我的appDelegate(包含didFinishLaunchingWithOptions
)的其他课程中,我有了这句话:
appDel = [[UIApplication sharedApplication]delegate];
[theLabel setText:[NSString stringWithFormat:@"%@", appDel.thePDFurl]];
不知何故,theLabel
总是显示(null)。我错过了什么?
答案 0 :(得分:8)
我可能误解了你要做的事情。如果是这样,请忽略。
如果您希望用户能够使用您的应用“打开...”PDF,您可以实施
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
E.g。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
NSLog(@"Open URL:\t%@\n"
"From source:\t%@\n"
"With annotation:%@",
url, sourceApplication, annotation);
NSString *filepath = [url path];
//...
return YES;
}
我很确定这适用于启动应用程序并调用它(即它是否已经在后台)。
答案 1 :(得分:2)
您可以保留pdfurl变量,并使用absoluteString方法从NSURL获取绝对字符串值。
[theLabel setText:[NSString stringWithFormat:@"%@", [appDel.thePDFurl absoluteString]]]
答案 2 :(得分:0)
我猜你没事。在方法applicationDidFinishLaunching完成之前,视图已经加载了。谢谢大家...
答案 3 :(得分:0)
在application:didFinishLaunchingWithOptions:
内进行通话时,
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
[viewController view]
被隐式调用,但尚未分配appDel.thePDFurl
。