Это уже можно сделать с помощью встроенного класса, указав «presentPopoverFromRect» и сделав этот прямоугольник достаточно ограниченным.
Ниже приведен код, взятый прямо из кода, который приводит к приведенному выше. Дополнительный пух, потому что маленькая зубчатая вещь находится в UIToolbar в UINavigationBar. r
- это рамка UIToolbar, и она настроена так, чтобы попасть в нужное место (для стрелки), иначе она будет немного смещена от центра. MGSettingsView
- это контроллер вида (с «Включить переходы», «Включить ночной режим» и т. Д.).
UINavigationItem *item = scrollView.navbar.topItem;
UIToolbar *authorTools = (UIToolbar *)[item.rightBarButtonItem customView];
CGRect r = authorTools.frame;
r.size.width = 18;
r.origin.x += 12;
CGSize popoverSize = CGSizeMake(300.f, 500.f);
MGSettingsView *settingsView = [[MGSettingsView alloc] initWithSize:popoverSize];
UIPopoverController *poctl = [[UIPopoverController alloc] initWithContentViewController:settingsView];
settingsView.popover = poctl;
poctl.delegate = self;
poctl.popoverContentSize = popoverSize;
[poctl presentPopoverFromRect:r inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
[settingsView release];
Если это не то, что вы просите, вам лучше перефразировать ваш вопрос, я думаю. :)