打开 UIPopoverController 的代码 [英] Code to open a UIPopoverController
问题描述
我目前有打开 UIViewController 的代码,在这种情况下,您之前已经打开过它,因此它不会完全从头开始加载.因此,当您返回时,旧数据仍然存在.我不想在您下次进入应用程序时保存数据.仅在该会话中.我正在尝试将此代码调整到 iPad 上的 UIPopOver.我尝试过,但无法做到.
I currently have code to open a UIViewController, in this case you have opened it before so it will not totally load from scratch. So the old data will still be there when you return. I am not trying to save the data for the next time you go in the app. Only in that session. I am trying to adapt this code to the iPad for a UIPopOver. I have tried but am not able to do it.
//没有弹出框
- (IBAction) addPerson:(id) sender{
if (addPersonController == nil) {
addPersonController = [[addPersonViewController alloc] initWithNibName:@"addPersonViewController" bundle:nil];
}
addPersonController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:addPersonController animated:YES];
[addPersonController retain];
}
//弹出框
- (IBAction) addPerson:(id) sender{
// create your view controller if it doesn't exist yet
if (dateViewPopOverController == nil){
addPersonViewController1 = [[addPersonViewControllerPopover_iPad alloc] init];
}
pop = [[UIPopoverController alloc] initWithContentViewController:addPersonViewController1];
// rest of your method...
addPersonViewController1.delegate = self;
pop.popoverContentSize = CGSizeMake(320, 480);
CGRect rect = CGRectMake(790, 35, 175, 300);
[pop presentPopoverFromRect:rect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];
}
推荐答案
您可以将 dateViewPopOverController 作为实例变量保留在您从中呈现弹出窗口的视图控制器中.这样,当弹出框被解除时,您的视图控制器仍会保留显示的 dateViewPopOverController.
You can keep the dateViewPopOverController as an instance variable in the view controller you are presenting the popover from. That way, when a popover is dismissed, your view controller still holds on to the dateViewPopOverController that was displayed.
在您的 .h 文件中:
@interface YourViewControllerName : UIViewController {
dateViewPopOverViewController_iPad *dateViewPopOverViewController;
// other ivars...
}
@property (nonatomic, retain) dateViewPopOverViewController_iPad *dateViewPopOverViewController;
// other @properties...
在您的 .m 文件中:
综合:
@synthesize dateViewPopoverController;
你的方法:
- (IBAction) selectStartDate:(id) sender {
NSLog(@"Select start date");
// create your view controller if it doesn't exist yet
if (dateViewPopOverController == nil)
dateViewPopOverViewController =
[[dateViewPopOverViewController_iPad alloc] init];
popover2 = [[UIPopoverController alloc]
initWithContentViewController:dateViewPopOverViewController];
// rest of your method... *but do not release the dateViewPopOverViewController here*
}
在 dealloc 中释放控制器:
release the controller in dealloc:
- (void) dealloc {
[dateViewPopOverViewController release];
// rest of dealloc...
}
这篇关于打开 UIPopoverController 的代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!