0

我认为真的很简单的问题。

我有一个主视图和一个弹出视图。

我正在尝试制作一个自定义委托,这将使我能够在某些时候关闭弹出视图。我的代码发布在下面。我遇到的真正简单的问题是我的代码似乎正在输入委托代码。关于为什么的任何想法?它构建并运行但似乎没有发生任何事情,我已经放置了 NSLog statments,popover nslog 出现但 mainview 中的函数 dismissPopover 什么都不做。

主视图.h

@interface MainScreen : UIViewController<DismissPopoverDelegate>

主视图.m

- (void) dismissPopover:(NSNumber *)dataa
{ /* Dismiss you popover here and process data */
[popoverController dismissPopoverAnimated:YES];
NSLog(@"OLOLO");    
}

弹出框.h

@protocol DismissPopoverDelegate
- (void) dismissPopover:(NSNumber *)yourDataToTransfer;
@end


@interface SelectAgePopOver : UIViewController<UITableViewDataSource,
UITableViewDelegate,UIPopoverControllerDelegate>{

NSArray *items;
id<DismissPopoverDelegate> delegate;


}

@property (nonatomic, assign) id<DismissPopoverDelegate> delegate;

弹出框.m

[self.delegate dismissPopover:selrow];

我希望代表打电话的地方。

谢谢

弹出视图由 main view.m 中的以下方法调用

       controller = [[SelectAgePopOver alloc] initWithNibName:@"SelectAgePopOver" bundle:nil];
    popoverController = [[UIPopoverController alloc] initWithContentViewController:controller];
    [popoverController setDelegate:self];


    popoverController.popoverContentSize = CGSizeMake(250, 294);

   if ([popoverController isPopoverVisible]) {
        [popoverController dismissPopoverAnimated:YES];
    } else {
        CGRect popRect = CGRectMake((self.AgeRangeTextField.frame.origin.x+50),
                                    (self.AgeRangeTextField.frame.origin.y+50),
                                    (self.AgeRangeTextField.frame.size.width),
                                    (self.AgeRangeTextField.frame.size.height));
        [popoverController presentPopoverFromRect:popRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    }
}
4

1 回答 1

0

在实例化 SelectAgePopOver 实例的地方,您需要将 SelectAgePopOver 实例的委托设置为 Mainview.m 中的 MainScreen (self),例如:

controller = [[SelectAgePopOver alloc] initWithNibName:@"SelectAgePopOver" bundle:nil];
;
controller.delegate = self;

请尝试设置控制器委托,如上所示。

在 SelectAgePopOver.h 类文件中,虽然不需要设置UIPopOverControllerDelegate

于 2013-05-19T14:33:35.660 回答