1

iPad 5.1 (XCode 4.3) プロジェクトで UIActionSheet を正しく実装する際に問題が発生しています。必要なすべてのアイテムを正しく入力できます。リストはウィンドウよりも長くなりますが、スクロールバーが自動的に表示されます。ただし、キャンセルボタン (最後にあると思われます) がタブバーの後ろに半分隠れて表示されます。下に示された:

(申し訳ありませんが、まだ画像を投稿できません)

ストーリーボードのセットアップは次のとおりです。エントリ ポイントは、左側のタブ バー コントローラーであり、ルート ビューとして右側のビュー コントローラーを持つ別のナビゲーション コントローラー (中央) に移動します。 http://i854.photobucket.com/albums/ab103/srVincentVega/ScreenShot2012-06-28at52713PM.png

あらゆる方法で UIActionSheet を表示しようとしましたが、この奇妙な動作が続き、対処方法がわかりません。

- (IBAction)cmdReason:(id)sender
{
    NSArray *reasons = [AppState getInspReasons];

    UIActionSheet *action = [[UIActionSheet alloc]
                             initWithTitle:@"Reason for Inspection"
                             delegate:self
                             cancelButtonTitle:@"Cancel"
                             destructiveButtonTitle:nil
                             otherButtonTitles:nil];

    for (NSString *rsn in reasons)
    {
        [action addButtonWithTitle:rsn];
    }

    [action showInView:self.view];
}

showFromTabBar、showFromToolbar など、「アクション」を表示するさまざまな方法を試しました。これを正しく提示する方法について誰か提案がありますか?

これがすでに他の場所で質問されている場合は申し訳ありません。私は一日中、SO を含む Web 上のコードを少しずつ試してきました。絵コンテのレイアウトと関係があるのか​​ 、それとも何なのかわかりません。

さらにもう 1 つ - エミュレーターを回転させると、アクション シートが再描画されますが、最後のビットが不安定になり、描画方法がわからなくなってしまいます。

どうもありがとう!

編集: この正確な動作を示す非常に小さなプロジェクトをまとめました。zipファイルをホストする良い方法がないので、google docsに置いて共有しました。リンクは以下です。それをクリックすると、元の zip ファイルを提供するファイルの下にダウンロード オプションがあるはずです。

https://docs.google.com/open?id=0B7IYvy9_c_NLaEFneGc5bzc2S2c

4

3 に答える 3

1

これには根本的な解決策はないようです。UIActionSheetその分ボタンのタイトルを追加してタブバーから提示すると限界のようです。

UIActionSheetそれに加えて、タブバーからを表示する適切な方法は、

[action showFromTabBar:self.tabBarController.tabBar];

それ以外の

// Taken from your example project
AppDelegate *d = [[UIApplication sharedApplication] delegate];
UIWindow *w = d.window;
UIViewController *vc = w.rootViewController;
UITabBarController *c = (UITabBarController *)vc;
UITabBar *t = c.tabBar;
[action showFromTabBar:t];
于 2012-06-29T18:07:03.937 に答える
0

これを試して:

CGRect r = CGRectMake(x, y, w, h); //change values to fit location of button
[actionSheet showFromRect:r inView:self.view animated:YES];

同じ問題を抱えたアプリの1つで使用しましたが、閉じるボタンが正常に表示されました。

于 2012-06-28T22:42:55.420 に答える
0

タブバーコントローラーへの参照を取得した場合、そこから提示できるはずです。メインウィンドウから表示してみることができますが、それに頼るべきではないと思います。

[action showInView:[[UIApplication sharedApplication] keyWindow]];
于 2012-06-28T21:41:52.537 に答える