我在Objective-C的类使用上可能存在一个基本误解,因此遇到了困难。我正在使用Storyboards,在这个应用程序中,我想为一个视图控制器上的文本字段创建一个简单的自定义日期选择器视图。然而,我好像无法从我的视图控制器中访问日期选择器类的任何属性:
首先,我在IB中按照以下方式对我的CustomDatePicker.xib进行了建模:
然后我通过继承UIView创建了一个自定义类,如下所示:
CustomPicker.h
在我的视图控制器中:
当点击文本框时,我的自定义日期选择器会弹出。然而,我无法在视图控制器的viewDidLoad方法中设置.datePickerMode。唯一能改变.datePickerMode的方式是通过IB,当然这在运行时不起作用。
我已经在IB中连接了outlet,并且能够在类内部访问datePicker.date,但无法在视图控制器中访问。
我已经研究并查看了许多实现此概念的方法。我的问题不是如何实现自定义日期选择器,而是“为什么无法从实例化它的视图控制器中访问自定义日期选择器的属性?”
首先,我在IB中按照以下方式对我的CustomDatePicker.xib进行了建模:
![enter image description here](https://istack.dev59.com/6GhtQ.webp)
CustomPicker.h
@interface CustomPickerView : UIView
@property (strong, nonatomic) IBOutlet UIDatePicker* datePicker;
@end
CustomerPicker.m
@implementation CustomPickerView
- (id)init
{
self = [super initWithFrame:CGRectMake(0, 0, 320, 258)];
if (self) {
[self addSubview:[[[NSBundle mainBundle] loadNibNamed:@"CustomPickerView" owner:self options:nil] objectAtIndex:0]];
}
return self;
}
在我的视图控制器中:
- (void)viewDidLoad
{
[super viewDidLoad];
self.customPickerView=[[CustomPickerView alloc] init];
// THE MAIN ISSUE IS...
// Following line has no effect on how picker is presented ???
self.customPickerView.datePicker.datePickerMode=UIDatePickerModeTime;
self.dateField.inputView=self.customPickerView;
}
当点击文本框时,我的自定义日期选择器会弹出。然而,我无法在视图控制器的viewDidLoad方法中设置.datePickerMode。唯一能改变.datePickerMode的方式是通过IB,当然这在运行时不起作用。
我已经在IB中连接了outlet,并且能够在类内部访问datePicker.date,但无法在视图控制器中访问。
我已经研究并查看了许多实现此概念的方法。我的问题不是如何实现自定义日期选择器,而是“为什么无法从实例化它的视图控制器中访问自定义日期选择器的属性?”