1

私たちのアプリでは、ShareKit を使用して Facebook と Twitter で何かを公開しています。Facebook は完璧に機能しますが、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。Twitter での OAuth の使用

編集: EimantasにThxに答える

問題を解決するには、次の 2 つのことを行う必要がありました。

  1. アプリのデリゲートで [SHK setRootViewController:(メインの rootviewcontroller)] を定義します
  2. github からこのフォークを使用して ください https://github.com/rs/ShareKit/commit/2121cbc1a2d935b36921ae226449b2acd6f10c06#diff-0
4

1 に答える 1

1

エイマンタスへのThx

問題を解決するには、次の 2 つのことを行う必要がありました。

  1. アプリのデリゲートで [SHK setRootViewController:(メインの rootviewcontroller)] を定義します
  2. github からこのフォークを使用して ください https://github.com/rs/ShareKit/commit/2121cbc1a2d935b36921ae226449b2acd6f10c06#diff-0
于 2011-06-30T06:48:47.667 に答える