我有一个viewcontroller,它有代码来实现Facebook窗口。问题是要运行代码,我需要这个url:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// attempt to extract a token from the url
self.openedURL = url;
// attempt to extract a token from the url
return [FBSession.activeSession handleOpenURL:url];
}
...正如我所知,它只能在app委托中运行,但我需要它来获取url。如果我只是将它添加到委托中,则不会调用它,并且我不知道它何时被调用以及如何调用。任何建议??
答案 0 :(得分:1)
如果您需要在另一个类中使用app delegate的属性,您可以在视图控制器类中使用以下代码(假设您的app delegate类的名称是AppDelegate):
NSURL *theURL = [(AppDelegate *)[[UIApplication shardApplication]delegate] openedURL];
我在这里假设您希望将此URL传递给您的控制器。您还需要将AppDelegate.h文件导入控制器。
答案 1 :(得分:0)
如果您需要查看url,可以使用全局变量来存储此函数并稍后使用它,让我们假设您有一个名为appData的单例声明一个静态变量
.h文件
+(appData*)sharedAppData;
@property (nonatomic,retain) nsurl * myUrl;
<。>文件中的
static appData* = nil;
initFunction {
if(! appData) { appData = [[appData alloc] init];}
}
+(appData*)sharedAppData{
return appData;
}
init函数中的初始化此对象,因此在系统中的任何位置都可以通过
访问此数据appData * data = [appData sharedData]; data.myurl = .... nslog(@“my url%@”,data.url);