2011-06-23 46 views
1

在我們的應用程序中,我們使用ShareKit在Facebook和Twitter上發佈了一些內容。 Facebook的作品完美,只有Twitter的一些問題。使用Sharekit認證Twitter後,應用程序崩潰

您第一次使用Twitter發送內容時,您需要驗證應用程序。 只有當它完成後,這個過程才能正常工作,它應該返回到在Twitter上發佈的屏幕。 但在這一點上,應用程序崩潰,因爲它無法找到的UIViewController了... 看到以下錯誤:

2011-06-22 17:18:29.355 asdf[189:707] *** Assertion failure in -[SHK showViewController:], /Users/nvt/Documents/asdf/Classes/Core/SHK.m:117 
2011-06-22 17:18:29.460 asdf[189:707] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'ShareKit: Could not find a root view controller. You can assign one manually by calling [[SHK currentHelper] setRootViewController:YOURROOTVIEWCONTROLLER].' 

但我設置的UIViewController:

- (IBAction) shareAll:(id)sender 
{ 
    [SHK setRootViewController:self]; 

    SHKItem *item = [SHKItem text:@"Deel app test"]; 

    [SHK setFavorites:[NSArray arrayWithObjects:@"SHKTwitter", @"SHKFacebook",nil] forType:SHKShareTypeURL]; 
    [SHK setFavorites:[NSArray arrayWithObjects:@"SHKTwitter", @"SHKFacebook",nil] forType:SHKShareTypeText]; 

    SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item]; 
    actionSheet.title = @"Deel"; 

    [actionSheet showInView:self.view]; 
} 

看來,不知怎的,Sharekit丟失了UIViewController的句柄。 我試圖通過增加固定它:

[SHK setRootViewController:self]; 

到viewDidLoad中和viewWillAppear中的方法,但這並沒有工作。 任何人遇到同樣的問題,或有想法解決這個問題? 儘管應用程序崩潰了身份驗證工作,因爲下次您想在Twitter上發佈某些內容時,它確實有效。 因此它只在第一次認證期間崩潰一次...

ps。使用OAuth Twitter的

編輯:回答 THX到Eimantas

我必須做兩件事情來解決這個問題:

  1. 定義[SHK setRootViewController:(主 RootViewController的) ]在應用程序 代表
  2. 從github使用此叉 https://github.com/rs/ShareKit/commit/2121cbc1a2d935b36921ae226449b2acd6f10c06#diff-0
+0

AFAIK - 這是一個已知的問題,可以在谷歌周圍找到。 – Eimantas

+0

你能提供鏈接嗎?因爲我搜索並找不到解決方案。這就是爲什麼我在這裏發佈的問題... – Slaapyhoofd

+0

http://getsharekit.com/support/ - 有一個標題「缺少根視圖控制器」。嘗試在應用程序委託中設置根視圖控制器(將視圖控制器添加到窗口時)。 – Eimantas

回答