1

タブバーから直接 ActionSheet を呼び出す方法はありますか? ユーザーが適切なボタンを含むアクションシートを表示するタブバーに連絡先ボタンが必要なプログラムに取り組んでいます。

前もって感謝します

4

4 に答える 4

2

これは良い考えではないと言っている上記のすべての人々に同意します(そしてこれはツールバーを使用して行うべきです)が、それは間違いなく実行可能です。

以下のコードは、UITabBarControllerDelegate メソッドの 1 つを実装し、タブ バー項目の選択を回避し、代わりに UIActionSheet を作成して表示します。

-   (BOOL)tabBarController:(UITabBarController *)tabBarController 
shouldSelectViewController:(UIViewController *)viewController
{
    NSInteger choice = 0; // --> index of the view controller that should "act as button"
    if (viewController == [tabBarController.viewControllers objectAtIndex:choice])
    {
        UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:nil 
                                                           delegate:nil 
                                                  cancelButtonTitle:@"Cancel" 
                                             destructiveButtonTitle:nil
                                                  otherButtonTitles:@"Send e-mail", @"Twitter", @"Whatever", nil];
        [sheet showFromTabBar:tabBarController.tabBar];
        return NO;
    }
    return YES;
}
于 2010-01-13T19:06:41.600 に答える
2

タブの 1 つにビュー コントローラーを関連付けて、そのビューをそのままにして、viewDidLoad で actionSheet を作成することはできませんか?

于 2009-08-03T20:41:08.047 に答える
1

たとえば、メール アプリでメールを表示しているときに、曲線の矢印ボタンを押して「転送 - 返信」アクション シートを表示します。

于 2009-08-04T00:10:17.173 に答える
1

スティーブが何を求めているか理解できると思います。TabBarController の 1 番目の要素を介して到達するメイン アクティビティがあります。2 番目のタブバー要素で、モーダルビュー メール、Facebook へのアクセス、または twitter へのアクセスを選択的に追加したいと思います。最初のView Controller(最初のタブバーの選択)の「背後」にあるものを見失わないように、その選択がアクションシートを介して提供され、選択を処理する新しいView Controllerが表示されると便利です。これは、たとえばニュース記事を「共有」したい場合に「AP mobile」が行うことのようです。

@エイドリアン:私はあなたのソリューションをすぐに使えるようにすることができませんでした..しかし、その理由を見つけました(続きを読む...)

Outlet:delegate から file-owner に具体的にドラッグすることは (明らかに) 役に立ちませんタブ バー コントローラーは使用できません。

インターフェイス定義に UITabBarControllerDelegate を追加するまで、私のデリゲート メソッドは無視されていました (UIApplicationDelegate は既に存在していて、それ以上は読みませんでした)...さらに、applicationDidFinishLaunching に追加しました

[rootController setDelegate:self];

乾杯。

于 2010-02-01T23:36:49.997 に答える