Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios uidatepicker委托不工作的UIPover_Ios_Uiviewcontroller_Delegates_Uipickerview_Uipopover - Fatal编程技术网

Ios uidatepicker委托不工作的UIPover

Ios uidatepicker委托不工作的UIPover,ios,uiviewcontroller,delegates,uipickerview,uipopover,Ios,Uiviewcontroller,Delegates,Uipickerview,Uipopover,我在故事板上用datepicker创建了一个弹出框,当按下按钮时弹出。选择日期并按下“完成”按钮后,必须将日期发送到UIViewController 我已经设置了协议和委托方法,如所述,但从未调用viewcontroller中的委托方法。我错过什么了吗?我需要使用segues吗??请帮忙 - (IBAction)doneButtonPress:(UIBarButtonItem *)sender { NSLog(@"donebuttonpress"); [_delegate rec

我在故事板上用datepicker创建了一个弹出框,当按下按钮时弹出。选择日期并按下“完成”按钮后,必须将日期发送到
UIViewController

我已经设置了协议和委托方法,如所述,但从未调用viewcontroller中的委托方法。我错过什么了吗?我需要使用segues吗??请帮忙

- (IBAction)doneButtonPress:(UIBarButtonItem *)sender {
    NSLog(@"donebuttonpress");
    [_delegate receiveDate:pickedDate];
    NSLog(@"afterdelegation");
}
打印
donebuttonpress
afterdelegation
,但从未调用过该方法:(

//选择DatePopover.h

#import <UIKit/UIKit.h>
@protocol selectDatePopoverDelegate <NSObject>
    - (void)receiveDate:(NSString *)theDate;
@end

@interface selectDatePopover : UIViewController{
    id <selectDatePopoverDelegate> delegate;
}

@property (nonatomic, assign) id < selectDatePopoverDelegate > delegate;
- (IBAction)doneButtonPress:(UIBarButtonItem *)sender;
- (IBAction)mydatepicker:(UIDatePicker *)sender;
@end
//签入视图控制器.h

#import "selectDatePopover.h"
@interface CheckIn_ViewController : UIViewController <selectDatePopoverDelegate>
    @property UIPopoverController *popover;
@end
//按下此按钮时,popover必须显示:

- (IBAction)calendarbutton:(UIButton *)sender {
    UIView *anchor = sender;
    selectDatePopover *selectDatePopoverInstance =
    [self.storyboard instantiateViewControllerWithIdentifier:@"selectDatePopover"];
    _popover = [[UIPopoverController alloc] initWithContentViewController:selectDatePopoverInstance];
    [_popover presentPopoverFromRect:anchor.frame
                         inView:anchor.superview
       permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

    selectDatePopoverInstance.delegate = self;
}

此行:self.popover.delegate=self;不正确。委托协议不在popover类中,它在其内容视图控制器中,该控制器为selectDatePopover。因此,将该行更改为:

selectDatePopover.delegate = self;

尝试记录\u delegate和pickedDate以确保两者都不是nil.pickedDate不是空的..我记录了..但不知道如何记录delegate..然后发布设置委托的代码,以及创建委托协议和委托属性的.h文件。我刚刚尝试了NSLog(delegate)并且它返回了空的@rdelMather日志应该是NSLog(@“%@”,delegate)。将其放入doneButtonPress方法中。它返回一个错误:在类型为“UIViewController*”的对象上找不到属性“delegate”。您需要更改此行中的UIViewController:“UIViewController*SelectDatePover=[self.storyboard…”以选择DatePover(这是您的类名--最好将其大写,但由于您没有这样做,您可能希望更改实例的名称,使它们不一样)。警告消失了..但我仍然无法使委托正常工作:(请更新您的问题以显示您正在尝试的代码。什么现在不起作用?您登录时委托是否仍然为零?@KedariTheja,这是一个输入错误:initWithContentViewController:SelectDatePoover。它现在应该是initWithContentViewController:SelectDatePooverInstance
- (IBAction)calendarbutton:(UIButton *)sender {
    UIView *anchor = sender;
    selectDatePopover *selectDatePopoverInstance =
    [self.storyboard instantiateViewControllerWithIdentifier:@"selectDatePopover"];
    _popover = [[UIPopoverController alloc] initWithContentViewController:selectDatePopoverInstance];
    [_popover presentPopoverFromRect:anchor.frame
                         inView:anchor.superview
       permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

    selectDatePopoverInstance.delegate = self;
}
selectDatePopover.delegate = self;