Как отменить UIPopoverController при открытии другого с помощью BarButtonItem? - PullRequest
0 голосов
/ 03 ноября 2011

Я довольно новичок в Objective-C, и до сих пор я использую UIViewController, и у меня есть два UIPopoverController, работающие в нем, но я хочу, чтобы один dismissPopoverAnimated при открытии другого Вот код, который я получил так далеко за ними:

-(IBAction)tabBtn1:(id)sender {

CapPhoto *capPhoto = [[CapPhoto alloc] init];
UIPopoverController *pop = [[UIPopoverController alloc] initWithContentViewController:capPhoto];
[pop setDelegate:self];
[pop presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
[pop setPopoverContentSize:CGSizeMake(200, 200)];
[capPhoto release];

}

-(IBAction)tabBtn2:(id)sender {

NewPhoto *newPhoto = [[NewPhoto alloc] init];
UIPopoverController *pop2 = [[UIPopoverController alloc] initWithContentViewController:newPhoto];
[pop2 setDelegate:self];
[pop2 presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
[pop2 setPopoverContentSize:CGSizeMake(200, 200)];
[newPhoto release];


}

Итак, я выделил два отдельных файла .xib (CapPhoto & NewPhoto) как PopoverControllers, и мне нужно, чтобы один из них был отклонен при вызове другого. Есть идеи? ура!

1 Ответ

1 голос
/ 06 декабря 2011

Вот объяснение того, как закрыть UIPopoverController при открытии другого:

В вашем основном файле viewcontroller.h объявите контроллер UIPopover

@interface viewcontroller: UIViewController {

UIPopoverController *popOne;
UIPopoverController *popTwo;

}
- (IBAction)popOver:(id)sender; 
@Property (nonatomic, retain) UIPopoverController *popOne'
@Property (nonatomic, retain) UIPopoverController *popTwo'

, а затем в вашем view controller.mфайл:

- (IBAction)popOver:(id)sender {
if ([popOne isPopoverVisible]) {
[popTwo dissmissPopoverAnimated:YES];
//in here is where you add things to your popover

//also note you can find tutorials on popovers this is just code to allow you to dismiss one when opening another. It'll make sense if you've followed a popover tutorial.

}
else {

[popOne dismissPopverAnimated:YES];

}
}

Бум.Вы сделали!

...