UIActionSheet
のメソッドshowFromTabBar:
を使用して、アクションシートを表示しています。デリゲートメソッドactionSheet:clickedButtonAtIndex:
では、現在のUITabBarItem
のタイトルを[email protected]"New Title"
と呼びます。self
は現在のTabBarControllerのViewControllerです。私がこれを行うと、TabBarItemのタイトルは空の文字列( "")になります。アクションシートのdelegate-methodにNSNotification
を投稿し、同じ方法で通知ハンドラメソッドのタイトルを変更しようとすると、アプリケーションがクラッシュします(コンソールに出力されません)。しかし、代わりに[self.tabBarItem performSelectorOnMainThread:@selector(setTitle:) withObject:@"New Title" waitUntilDone:NO]
を呼び出すと、両方のバリアントで動作します。これはSDKのバグですね。actionSheet-delegateメソッドでtabBarItem-titleを設定できません
0
A
答えて
1
基本的には、へのコール中にUIActionSheet
がメインスレッド(または少なくともそれとのやりとり)をブロックしています。これはおそらくUITabBar
によって/から提示された結果です。
setTitle:
タスクは、performSelectorOnMainThread:withObject:waitUntilDone:NO
コールで後で完了するようにスケジュールしています。そして、これはうまくいくでしょう。
dispatch_async(dispatch_get_main_queue(), ^{
self.tabBarItem.title = @"New Title";
});
そして、その構文はそれは素晴らしいことだ、より良いあなたにぴったりの場合:そうのようなブロックを使用してと同一でない場合は、非常に似ています。
しかし、より簡単な方法があります。デリゲートメソッドactionSheet:didDismissWithButtonIndex:
を使用してください。UIActionSheet
がすでに終了したときに、このメソッドが呼び出され、他の呼び出しをブロックしなくなります。
関連する問題
- 1. POSTメソッドでnode.jsにヘッダーを設定できません
- 2. UIGestureRecognizer設定メソッドを追加できません
- 3. イメージビューを設定できません
- 4. contentviewを設定できません
- 5. "mongod"を設定できませんPATH
- 6. WPF:フォーカスを設定できません
- 7. UILabelプロパティを設定できません。
- 8. XMPPリスナーを設定できません
- 9. クッキー名を設定できません
- 10. データロギングシステムを設定できません
- 11. CKEditor:フルツールバーを設定できません
- 12. カスタムクラス名を設定できません
- 13. UITableViewCellを設定できませんdetailTextLabel.text
- 14. デフォルト値を設定できません
- 15. ビッグビュースタイルを設定できません
- 16. UIImageViewイメージを設定できません
- 17. ComboBox.SelectedItemを設定できませんか?
- 18. getViewメソッドで背景イメージを正しく設定できません
- 19. Spring Boot:設定できません
- 20. iphone設定ユーティリティ3.3は設定をインストールできません
- 21. pyusb:設定を設定できません
- 22. iPhone設定ユーティリティ。設定プロファイルを削除/インストールできません
- 23. ImageMagickで画像の向きを設定できません
- 24. curl_execをクラッシュせずにCURLOPT_NOBODYを設定できません
- 25. C#でIEnumerable内でプロパティを設定できません。
- 26. GridViewで編集モードでdateformatを設定できません
- 27. ChromeでBabelとWebpackでブレークポイントを設定できません
- 28. Uncaught TypeError:未定義のプロパティ 'unobtrusive'を設定できません
- 29. GTKmm - Gtk :: Scaleウィジェットに固定サイズを設定できません
- 30. は、特定のセルに数式を設定できません
+1です。これはdidDismissWithButtonIndex:メソッドで機能するためです。しかし、あなたの "ブロックされたメインスレッド"の説明は満足のいくものではありません。 「ブロックされた」という言葉で正確に何を意味し、なぜそれが単純なタイトルプロパティの(直接の)設定を禁止するのですか? –