0

私は iPad アプリに ECSlidingViewController を使用しています。メインの UIViewController の左側に表示されるマスター ページ (メニュー) として UINavigationController を取得しようとしています。

これを行うには、 UINavigationCONtroller に特定の幅が必要です。そうしないと、望ましくない全幅になります。

私はストーリーボードを使用しており、次のようにviewControllerをロードしています:

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Setup the view controllers
    self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MainTop"];    
    self.underLeftViewController  = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];
}

これの幅を 320px に制限するにはどうすればよいですか? フレームを設定する必要があることはわかっています。それは、どこでどのように行うかだけです。

4

1 に答える 1

0

わかりました、これについて考えてみると、これは実際には非常に簡単でした。メニュー ビュー コントローラーがストーリーボードの UINavigationController に埋め込まれていることを確認しました。メニュー VC から storyboardID を削除し、UINavigationController に追加しました。

次に、UINavigationController をサブクラス化し、viewDidLoad メソッドに以下を追加しました。

- (void)viewDidLoad
{
    [super viewDidLoad]; 

    [self.slidingViewController setAnchorRightRevealAmount:320.0f];
    self.slidingViewController.underLeftWidthLayout = ECFixedRevealWidth;

}

元のメニュー VC viewDidLoad メソッドからそのコードを削除します。ECFixedReveal を追加する ECSlidingViewController のドキュメントを読むと、VC のサイズが setAnchorRightRevealAmount 値に一致するようになります。

これで、表示された左側のメニュー内にナビゲーション コントローラーができました。

于 2013-05-15T16:45:07.950 に答える