2011-11-03 52 views
0

我很新的Objective-C,到目前爲止我使用UIViewController,我有兩個UIPopoverControllers工作,但我想要一個人,當我打開其他的時候關閉PoveroverAnimated在這裏,我已經得到的代碼對他們來說:如何使用BarButtonItem打開另一個時關閉UIPopoverController?

-(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,我需要一個當對方被稱爲解僱。有任何想法嗎?乾杯!

+0

我解決了我的問題,但隨意評論它是否會使其他人受益! – Ollie177

回答

1

這裏是如何打開另一個時駁回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' 

那麼在你看來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]; 

} 
} 

繁榮。你完成了!

相關問題