私は奇妙な状況に遭遇しました。これはすべてコードで行われ、Interface Builder は不要です。
私は作成しUIViewController
、それにいくつかのコンテンツを追加しています:
UIViewController* popoverViewController = [[[UIViewController alloc] init] autorelease];
UIView* popoverContentView = [[[UIView alloc] init] autorelease];
popoverContentView.backgroundColor = [UIColor blackColor];
// Add some stuff to popoverContentView
popoverViewController.view = popoverContentView;
次に、 を作成しUINavigationController
、そのルート ビュー コントローラーをUIViewController
上記の に設定し、タイトルとボタンを に追加しますnavigationItem
。
UINavigationController* popoverNav = [[[UINavigationController alloc] initWithRootViewController:popoverViewController] autorelease];
popoverViewController.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissPopover)] autorelease];
[popoverViewController.navigationItem setTitle:@"MY TITLE"];
UIPopoverController
次に、をその中に設定してUINavigationController
提示します。
self.popoverController = [[[UIPopoverController alloc] initWithContentViewController:popoverNav] autorelease];
self.popoverController.delegate = self;
[self.popoverController setPopoverContentSize:CGSizeMake(320, 216) animated:NO];
[self.popoverController presentPopoverFromRect:self.cell.frame inView:self.popoverParentView permittedArrowDirections:UIPopoverArrowDirectionUp | UIPopoverArrowDirectionDown animated:YES];
問題は、1 つの例外を除いてすべてが正しく表示されることです。ナビゲーション バーは表示されませんが、タイトル テキストとバー ボタンは表示され、正しく機能します。hidden
バーとプロパティをいじってtintColor
ポップオーバーのサイズを変更しようとしましたが、何も変わりません。
明らかな何かが欠けていると確信していますが、見えません。
プロジェクトのコードベースに同様の例が他にもありますが、それらは正しく表示されます。なぜこれが起こっているのか、どうすれば修正できるのかについてのアイデアはありますか?
編集
以下が役立つかどうかはわかりませんが、以前にこのようなものを見たことがある人に、ここで実際に何が起こっているのかについての手がかりを提供できることを願っています.
popoverNav
何が起こるかを確認するためだけに、新しい (空の) ビュー コントローラーをプッシュしました。それは完全に押してアニメーション化します。ナビゲーション バーがまだ透明で、バー ボタン項目がビューの上部にプッシュされていることを除いて、すべてが正しく表示されます。