1

私は2つのビューコントローラーを持っており、2番目のビューコントローラーにはテーブルビューがあります。この目的でストーリーボードを使用し、1番目から2番目のビューコントローラーへの移行にはポップオーバーコントローラーを使用しています。問題は、2番目のビューコントローラーでテーブルビューコントローラーを使用しているため、インデックスパスで行を選択をクリックすると、ビューが表示されますが、以前のポップオーバーサイズと一緒に表示されます。セルをクリックしたときに動的にサイズを変更する方法として、これに固執しています。可能なヘルプはありますか?

ps-私はポップオーバーコントローラーにIBOuletを使用しておらず、コードでも作成していないことに注意してください。以前は、ポップオーバーのサイズ変更にsetcontentsizeを使用しましたが、ストーリーボードでスタックしています。

4

1 に答える 1

1

ここにあなたが試すことができる方法があります

  1. ポップオーバーに配置される ViewController を作成し、それを選択して [ユーティリティ] ペイン > [属性インスペクター] > [サイズをフリーフォームに設定] に移動します。

  2. ポップオーバー セグエを選択し、[ユーティリティ] ペイン > [属性インスペクター] > [識別子を "yourIdentifier" に設定] に移動します。

初挑戦

ビューを選択し、[ユーティリティ] ペイン -> [サイズ インスペクター] に移動して、ViewController のサイズを変更します [期待されるサイズを取得できるかどうかを確認します]。

2 回目の試行 - popOverViewControllerを呼び出しているビュー内でこれを試してください

    UIPopoverController *popover; // define this in .h as ivar

    - (IBAction)buttonPressed:(id)sender 
    {
         UIButton *anchor = (UIButton*)sender;
         UIViewController *viewControllerForPopover = [self.storyboard instantiateViewControllerWithIdentifier:@"yourIdentifier"];    
         popover = [[UIPopoverController alloc] 
               initWithContentViewController:viewControllerForPopover];
         [popover setPopoverContentSize:CGSizeMake(width, height)]; // here see if you can get expected size
         [popover presentPopoverFromRect:anchor.frame 
                                  inView:anchor.superview 
                permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    }

3回目のトライ

ポップオーバー サイズの強制については、krasnyk による Trick (受け入れられた回答) を参照してください。

于 2013-03-12T11:35:21.717 に答える