0

ナビゲーション バーと次のコードを含むナビゲーション コントローラーがあります。

panel = [[Panel alloc] initWithNibName:@"Panel" bundle:nil];
[self presentModalViewController:panel animated:NO];
panel.view.superview.frame = CGRectMake(250, 180, 550, 400);

このサブビューをナビゲーション バーに表示したいのですが、それは問題なく動作しますが、特定のフレームも必要です。サブビューをフルスクリーンにしたくありません。を使おうと思っpresentModalViewControllerたのですが、他にナビゲーションバーをドレープする方法はありませんか?

4

2 に答える 2

0

ここで何を達成しようとしているのかは完全にはわかりませんが、現在のコードが正しい解決策であるとは思えません。iPhone では、UIViewController のビューがウィンドウ全体に表示されることが想定されているため、View Controller のビューのフレームのサイズを変更したり、モーダルに表示された UIViewController のビューを全画面表示よりも小さく表示したりしないでください。現在のコントローラーとビューの構造がどのようなもので、どのような効果を構築したいのか、より具体的に教えていただけますか?

于 2011-06-14T19:59:45.063 に答える
0

ナビゲーション バーに追加されたものはすべて、実際にはビューです。いくつかのオプションがあります。大きすぎるので、ナビゲーション バーにビュー全体を表示する必要はないと思います。そのため、ナビゲーション バーのボタンを押してビューを表示することを前提としています。

これを行うには、ナビゲーション バーにボタンを追加するだけです。ここには、それらを追加できるいくつかのオプションまたは場所があります。私は通常、self.navigationItem.rightBarButtonItem、またはを使用しますself.navigationItem.leftBarButtonItemが、タイトル ビューでも試して取得することもできます。過去に、ナビゲーション バーの titleView にアルファベット順のセグメント化されたコントロールをセットアップしました。

ボタンを追加したら、フラグ (BOOL インスタンス変数) を true または false と比較する、そのボタンに接続されるアクションを作成するだけです。true の場合は、単純に pannel.view を self.view に addSubview し、false の場合は[pannel.view removeFromSuperview].

ビューを追加および削除した後にフラグを設定することを忘れないでください。

于 2011-06-14T17:33:20.510 に答える