在我們的應用程序中,我們使用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
我必須做兩件事情來解決這個問題:
- 定義[SHK setRootViewController:(主 RootViewController的) ]在應用程序 代表
- 從github使用此叉 https://github.com/rs/ShareKit/commit/2121cbc1a2d935b36921ae226449b2acd6f10c06#diff-0
AFAIK - 這是一個已知的問題,可以在谷歌周圍找到。 – Eimantas
你能提供鏈接嗎?因爲我搜索並找不到解決方案。這就是爲什麼我在這裏發佈的問題... – Slaapyhoofd
http://getsharekit.com/support/ - 有一個標題「缺少根視圖控制器」。嘗試在應用程序委託中設置根視圖控制器(將視圖控制器添加到窗口時)。 – Eimantas