한 가지 방법을 일반적인 UIPickerView를하거나 내가 그것을 만들 수 있도록 예를 들어 어떤 종류의 표시 출처와 위임. 예를 들어, .H 파일에, 당신은하는 .m 파일에서
typedef void(^completionHandler) (NSString *selectedString);
@interface RDPickerController : NSObject <UIPickerViewDataSource, UIPickerViewDelegate>
@property (strong,nonatomic) UIPickerView *picker;
-(instancetype)initWithCompletionHandler:(completionHandler) completion;
을 같은 것을 할 당신이 필요로하는 데이터 소스 및 위임 방법을 구현하고, pickerView에 완료 블록을 호출 할 수 있습니다 : didSelectRow : inComponent : 방법, 컨트롤러 클래스에서
@interface RDPickerController()
@property (strong,nonatomic) NSArray *data;
@property (copy,nonatomic) completionHandler compBlock;
@end
@implementation RDPickerController
-(instancetype)initWithCompletionHandler:(completionHandler)completion {
if (self = [super init]) {
_picker = [UIPickerView new];
_picker.delegate = self;
_picker.dataSource = self;
_data = @[@"One", @"Two", @"Three", @"Four", @"Five", @"Six", @"Seven", @"Eight", @"Nine", @"Ten"];
_compBlock = completion;
}
return self;
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return self.data.count;
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
return self.data[row];
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
self.compBlock(self.data[row]);
}
, 생성하고이 같은 선택 도구를 사용할 수
@interface ViewController()
@property (strong,nonatomic) RDPickerController *pc;
@end
@implementation ViewController
- (IBAction)showPicker:(UIButton *)sender {
self.pc = [[RDPickerController alloc] initWithCompletionHandler:^(NSString *selectedString) {
NSLog(@"%@",selectedString);
// do whatever with the returned data here
}];
[self.view addSubview:self.pc.picker];
}
그것을 어떻게 내가 그것을 내 자신있는 NSArray를 보낼 수 있습니다 노력하고 있습니다 .. 그리고 나는 끝났어 .. – Nepster
내 자신의 _data – Nepster
@Nepster를 의미합니다. 데이터를이 클래스에 전달해야하는 경우 init 메서드를 initWithData : (NSArray *) data completionHandler : (completionHandler) 완료로 변경하고 배열을 전달합니다. – rdelmar