0

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];       
 }

...そして、私が理解しているように、アプリデリゲートでのみ実行できますが、URL を取得する必要があります。デリゲートに追加するだけでは呼び出されず、いつどのように呼び出されるのかわかりません。助言がありますか??

4

2 に答える 2

1

別のクラスでアプリ デリゲートのプロパティを使用する必要がある場合は、View Controller クラスで次のコードを使用できます (アプリ デリゲート クラスの名前が AppDelegate であると仮定します)。

NSURL *theURL = [(AppDelegate *)[[UIApplication shardApplication]delegate] openedURL];

ここでは、この URL をコントローラーに渡したいと想定しています。AppDelegate.h ファイルをコントローラーにインポートする必要もあります。

于 2012-11-12T19:13:34.720 に答える
0

URLを確認する必要がある場合は、グローバル変数を使用してこの関数から保存し、後で使用できます。appDataというシングルトンが静的変数を宣言していると仮定します。

.hファイル

+(appData*)sharedAppData;
@property (nonatomic,retain) nsurl * myUrl;

.mファイル内

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);

于 2012-11-12T19:15:28.257 に答える