Панель инструментов UIPopoverController вверху - PullRequest
5 голосов
/ 06 июля 2011

Я пытаюсь поместить UIToolbar в верхнюю часть UIPopoverController во многом так же, как Apple сделала это на страницах и пометить их с помощью панели инструментов «media», «tables», «charts», «shape».

enter image description here

Мне удалось разместить один элемент внизу, используя тот же метод, который описан в этого сообщения , но я не могу переместить его наверх.

Я могу сделать это, просто поместив обычную панель UIToolbar в один из контроллеров дочернего представления, однако панель инструментов, похоже, не следует той же линии, что и граница, и выглядит не так хорошо, как в приложениях Apple..

У кого-нибудь есть предложения, как это сделать, или если это вообще возможно?Любая помощь будет высоко ценится.

Спасибо!

Ответы [ 2 ]

10 голосов
/ 07 июля 2011

Используйте UINavigationController, который содержит только один ваш ViewController в качестве содержимого popoverController, например:

MyViewController *myVC = [[myViewController alloc] init];

UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:myVC];

myPopoverController = [[UIPopoverController alloc] initWithContentViewController:navCon];

[myVC release];
[navCon release];

[myPopoverController presentPopoverFromRect:rect
                                     inView:view
                   permittedArrowDirections:UIPopoverArrowDirectionRight
                                   animated:YES];

Затем в инициализации вашего viewController установите элементы navigationController:

self.navigationItem.title = @"myTitle";
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editButtonTapped:)] autorelease];

Вы можете сойти с ума и положить туда, что вы хотите:

self.navigationItem.titleView = [[MySpecialTitleView alloc] initWithFrame...];

Ваш навигационный контроллер не будет перемещаться, если в его стеке только один ViewController.

Предупреждение для iOS 7: навигационные панели внутри всплывающих окон, кажется, игнорируют оттенок в iOS 7. Я думаю, что это ошибка, и я советую вам подать в Apple отчет об ошибке, если вы столкнетесь с этой проблемой.

1 голос
/ 02 октября 2011

Вы можете поместить панель инструментов поверх вашего UIPopoverController.

Точнее, вы должны поместить ее поверх UIViewController, который будет установлен как содержимое вашего UIPopoverController при вызове initWithContentViewController.

Если вы используете IB:1) перетащите панель инструментов UItoolbar в верхнюю часть вашего UIViewController2) выберите UIToolbar, перейдите в инспектор размера и в разделе авторазмера:- нажмите на верхний индикатор, чтобы исправить верхнее поле- нажмите на нижний индикатор, чтобы сделать нижнее поле гибким

В маленьком окне предварительного просмотра красная полоса должна оставаться сверху

...