Мне нужно то же самое ...
Так как я не мог найти готовое решение здесь, я решил сделать это сам ... Я вижу, что это очень старый пост, так что я думаю, что вы уже нашли решение, но на тот случай, если вы не нашли и кто-то еще может найти это полезным и сэкономить пару минут:)
ПРИМЕЧАНИЕ: моя цель - только для iPad , поэтому я выбрал UIPopoverViewController, для iPhone были другие ViewController, которые можно было использовать, но идея была бы такой же ...
То, что я сделал, отредактировано ChildBrowserCommand.h
и добавлено:
#define POPOVER_WIDTH 400
#define POPOVER_HEIGHT 300
@interface ChildBrowserCommand : PGPlugin <ChildBrowserDelegate, UIPopoverControllerDelegate> {
ChildBrowserViewController* childBrowser;
UIPopoverController *popover;
}
@property (nonatomic, retain) ChildBrowserViewController *childBrowser;
@property (nonatomic, retain) UIPopoverController *popover;
Также я отредактировал ChildBrowserCommand.m
, синтезировал поповер и изменил:
//[ cont presentModalViewController:childBrowser animated:YES ];
с:
if (popover == NULL)
{
popover = [[UIPopoverController alloc] initWithContentViewController:childBrowser];
[popover setPopoverContentSize:CGSizeMake(POPOVER_WIDTH, POPOVER_HEIGHT) animated:YES];
popover.delegate = self;
}
[popover presentPopoverFromRect:cont.view.bounds inView:cont.view permittedArrowDirections:0 animated:YES];
, а также добавлена строка отклонения:
-(void) onClose
{
NSString* jsCallback = [NSString stringWithFormat:@"ChildBrowser._onClose();",@""];
[self.webView stringByEvaluatingJavaScriptFromString:jsCallback];
[popover dismissPopoverAnimated:YES];
}
Наконец, я удалил (закомментировал) dismissModal из ChildBrowserViewController.m
(кстати, это не то место, где он должен быть):
-(void)closeBrowser
{
if(delegate != NULL)
{
[delegate onClose];
}
//[super dismissModalViewControllerAnimated:YES];
}
В результате ChildBrowser открывается в UIPopoverViewController с указанным размером (и без стрелок в моем случае, если вы хотите, просто укажите UIPopoverArrowDirection
), удачно завершает работу, когда завершает работу и / или когда щелкает за пределами всплывающего окна. .
С наилучшими пожеланиями,
Срджан