2012-03-20 43 views
1

我正在玩Facebook的iOS SDK一點點。切換到線程後沒有與Facebook iOS SDK對話框交互?

我有一個TabBar應用程序(與MainWindow.xib),我成功地集成了Facebook SDK。

問題是,Facebook的彈出對話框不響應我的用戶交互。

例如。我想在牆上張貼一些東西。 Facebook SDK打開一個對話框,但如果我嘗試與對話框交互,它不會發生任何事情。

日誌告訴我:切換到處理2365螺紋0x12d07]

我怎樣才能解決這個問題?

我正在使用模擬器。

重要的代碼的int AppDelegate中看起來像,它實際上或多或少同樣喜歡上developer.facebook.com:

謝謝你很多。

// AppDelegate.h 

@interface AppDelegate : UIResponder <UIApplicationDelegate, FBSessionDelegate, FBDialogDelegate> { 
    Facebook *facebook; 
} 

@property (nonatomic, retain) Facebook *facebook; 
@property (strong, nonatomic) IBOutlet UIWindow *window; 
@property (strong, nonatomic) IBOutlet UITabBarController *tabBarController; 


// AppDelegate.m 

@implementation AppDelegate 
@synthesize facebook; 

@synthesize window = _window; 
@synthesize tabBarController = _tabBarController; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    facebook = [[Facebook alloc] initWithAppId:@"APP_ID" andDelegate:self]; 

    if (![facebook isSessionValid]) { 
    [facebook authorize:nil]; 
    } 

    self.window.rootViewController = self.tabBarController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 
@end 

親切的問候。

+0

您可能想要編輯您的問題並在問題中添加一些代碼(或僞代碼),否則人們只是猜測您的問題。你也應該分享你迄今爲止的調試方式。 – Gray 2012-03-20 17:46:18

回答

0

您需要一個職位,以飼料,如下面

-(void)postToFeed 
{ 
    MyAppAppDelegate *sharedAppDelegate = (MyAppAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    [sharedAppDelegate.facebook dialog:@"feed" andParams:params andDelegate:self]; 
} 
0

一個我正好碰上同樣的問題的方法。對我來說問題是我的UIApplication keyWindow的userInteractionEnabled = NO。所以沒有額外的UIWindow提供給我(下面更多)。

我發現這個代碼FBDialog.m

- (void)showWebView { 
    UIWindow* window = [UIApplication sharedApplication].keyWindow; 
    if (!window) { 
     window = [[UIApplication sharedApplication].windows objectAtIndex:0]; 
    } 
    _modalBackgroundView.frame = window.frame; 
    [_modalBackgroundView addSubview:self]; 
    [window addSubview:_modalBackgroundView]; 
    .... 

所以這將對話框添加到keyWindow。我只有一扇窗戶,所以我想。事實證明,SVProgressHUD將創建一個禁用用戶交互的新窗口,並使其成爲關鍵窗口(有意義)。

我猜其他HUD風格的事情是這樣做的。我只是在做一些準備工作時才顯示HUD,因此,當我能夠顯示對話框時,我可以將其刪除。所以這是我的修復。

我挖這件事通過調用

NSLog(@"%@", [[UIApplication sharedApplication] windows]); 
    NSLog(@"%@", [UIApplication sharedApplication].keyWindow); 

之前,我正要顯示對話框,並注意到

  • 我有兩個一個UIWindow的
  • 關鍵的一條的userInteractionEnabled設置爲NO

希望有幫助。

相關問題