0
사용자가 특정 옵션을 선택할 때 선택기보기에서 레이블을 채우고 싶습니다. 예 : 구성 요소 1 선택 사항은 레이블 1에 표시되고 구성 요소 2 선택 사항은 레이블 2에 표시되고 구성 요소 3 선택 사항은 레이블 3에 표시됩니다.선택기보기 선택 항목 레이블 채우기
일반 선택기에는 아무런 문제가 없지만 선택기 구성 요소는 다음과 같이 변경됩니다. 이전 구성 요소가 어떤 선택인지.
예 : 컴포넌트의 구성 요소 1은 데이터에
첫번째 선택 2
성분 1초 선택 차례로 성분의 다른 데이터를 표시하는 구성 요소 (2)
다른 데이터를 표시하는 3
현재 실행 중이 아니며 제대로 작동하지 않아 내가 잘못하고있는 것을 알지 못합니다. 나는 그것이 "didSelectRow"섹션이라고 생각하고 있지만 정확히 확신 할 수는 없습니다.
.H
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UIPickerViewDataSource, UIPickerViewDelegate>
@property (weak, nonatomic) IBOutlet UIPickerView *picker1;
@property (weak, nonatomic) IBOutlet UILabel *label1;
@property (weak, nonatomic) IBOutlet UILabel *label2;
@property (weak, nonatomic) IBOutlet UILabel *label3;
@end
하는 .m
#import "ViewController.h"
@interface ViewController()
{
NSArray*overalltype;
NSArray*healthtype;
NSArray*midwifetype;
NSArray*doctortype;
NSArray*otherhealthtype;
NSArray*visitorstype;
NSArray*othertype;
NSArray*onlinetype;
NSArray*volunteertype;
NSInteger selectedOptionFromColumn1;
NSInteger selectedOptionFromColumn2;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
overalltype =[[NSArray alloc]initWithObjects:@"Health Professional", @"HouseKeeping",@"Visitors", @"Other",nil];
healthtype =[[NSArray alloc]initWithObjects:@"Midwife", @"Nurse",@"Doctor", @"Other Health Professional" ,nil];
midwifetype =[[NSArray alloc]initWithObjects:@"Known Midwife", @"New Midwife", nil];
doctortype =[[NSArray alloc]initWithObjects:@"Snr Dr", @"Jnr Dr", @"Baby Dr", @"GP", nil];
otherhealthtype =[[NSArray alloc]initWithObjects:@"Lactation Consultant", @"Student", @"Hearing Technician", @"Bloody Collector", @"Social Worker", @"Mental Health", @"Physiotherapist", nil];
visitorstype =[[NSArray alloc]initWithObjects:@"Partner", @"Relatives", @"Friends", @"Other Woman's Visitors", nil];
othertype =[[NSArray alloc]initWithObjects:@"Online Support", @"Volunteer", @"Church Group", @"Wardsperson", nil];
onlinetype =[[NSArray alloc]initWithObjects:@"Chatroom", @"Internet Search", nil];
volunteertype =[[NSArray alloc]initWithObjects:@"ABA", @"Hospital Volunteer", @"Church Group", nil];
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 3;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component
{
switch (component) {
case 0:
return overalltype.count;
break;
case 1:
if (selectedOptionFromColumn1 == 0) {
return healthtype.count;
}
else if (selectedOptionFromColumn1 == 2){
return visitorstype.count;
}
else if (selectedOptionFromColumn1 == 3){
return othertype.count;
}
break;
case 2:
if (selectedOptionFromColumn1 == 0 && selectedOptionFromColumn2 ==0) {
return midwifetype.count;
}
else if (selectedOptionFromColumn1 == 0 && selectedOptionFromColumn2 ==2) {
return doctortype.count;
}
else if (selectedOptionFromColumn1 == 0 && selectedOptionFromColumn2 ==3) {
return otherhealthtype.count;
}
else if (selectedOptionFromColumn1 == 3 && selectedOptionFromColumn2 ==0) {
return onlinetype.count;
}
else if (selectedOptionFromColumn1 == 3 && selectedOptionFromColumn2 ==1) {
return volunteertype.count;
}
break;
default:
break;
}
return 0;
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
switch (component) {
case 0:
return [overalltype objectAtIndex:row];
break;
case 1:
if (selectedOptionFromColumn1 == 0) {
return [healthtype objectAtIndex:row];
}
else if (selectedOptionFromColumn1 == 2) {
return [visitorstype objectAtIndex:row];
}
else if (selectedOptionFromColumn1 ==3){
return [othertype objectAtIndex:row];
}
break;
case 2:
if (selectedOptionFromColumn1 == 0 && selectedOptionFromColumn2 == 0) {
return [midwifetype objectAtIndex:row];
}
else if (selectedOptionFromColumn1 == 0 && selectedOptionFromColumn2 == 2) {
return [doctortype objectAtIndex:row];
}
else if (selectedOptionFromColumn1 == 0 && selectedOptionFromColumn2 == 3) {
return [otherhealthtype objectAtIndex:row];
}
else if (selectedOptionFromColumn1 == 3 && selectedOptionFromColumn2 == 0) {
return [onlinetype objectAtIndex:row];
}
else if (selectedOptionFromColumn1 == 3 && selectedOptionFromColumn2 == 1) {
return [volunteertype objectAtIndex:row];
}
break;
default:
break;
}
return 0;
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
switch (component) {
case 0:
selectedOptionFromColumn1=[pickerView selectedRowInComponent:0];
[pickerView reloadComponent:1];
_label1.text = [overalltype objectAtIndex: [pickerView selectedRowInComponent:0]];
case 2:
selectedOptionFromColumn2=[pickerView selectedRowInComponent:1];
[pickerView reloadComponent:2];
if(selectedOptionFromColumn1 == 0){
_label2.text = [healthtype objectAtIndex: [pickerView selectedRowInComponent:1]];
}
else if(selectedOptionFromColumn1 ==2){
_label2.text = [visitorstype objectAtIndex: [pickerView selectedRowInComponent:1]];
}
else if(selectedOptionFromColumn1 ==3){
_label2.text = [otherhealthtype objectAtIndex: [pickerView selectedRowInComponent:1]];
}
case 3:
if (selectedOptionFromColumn1 ==0 && selectedOptionFromColumn2 == 0){
_label3.text = [midwifetype objectAtIndex: [pickerView selectedRowInComponent:2]];
}
else if(selectedOptionFromColumn1 ==0 && selectedOptionFromColumn2 ==2){
_label3.text = [doctortype objectAtIndex: [pickerView selectedRowInComponent:2]];
}
else if(selectedOptionFromColumn1 ==0 && selectedOptionFromColumn2 == 3){
_label3.text = [otherhealthtype objectAtIndex: [pickerView selectedRowInComponent:2]];
}
else if(selectedOptionFromColumn1 ==3 && selectedOptionFromColumn2 == 0){
_label3.text = [onlinetype objectAtIndex: [pickerView selectedRowInComponent:2]];
}
else if(selectedOptionFromColumn1 ==3 && selectedOptionFromColumn2 == 1){
_label3.text = [volunteertype objectAtIndex: [pickerView selectedRowInComponent:2]];
}
}
}
- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];
}
@end
어떤 오류를 읽을
또한 현대 오브젝티브 C, https://developer.apple.com/library/ios/releasenotes/ObjectiveC/ModernizationObjC/AdoptingModernObjective-C/AdoptingModernObjective-C.html 사용을 고려할 수 있는가? 누구든지 도움을 얻을 수있는 자세한 정보를 제공해야합니다. – rmaddy
앞으로도 가능한 한 코드를 형식화 해보십시오. 나는 이번에 당신을 위해 그것을 해냈습니다. 당신의 질문을 이해하는 데 많은 도움이됩니다. – TMob