打开 UIPopoverController 的代码 [英] Code to open a UIPopoverController

查看:56
本文介绍了打开 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆