1. Project 생성
1) Create a new Xcode Project -> View based Application -> "PickerTest"
2. Picker View 추가/연결하기
1) PickerTestViewController.xib 실행
2) Library 창에서 "Picker View"와 "Label"을 윈도우로 Drag & Drop
3) IBOutlet 변수 추가
@interface PickerTestViewController: UIViewController {
IBOutlet UIPickerView *dataPicker;
IBOutlet UILabel *selectedText;
}
@end
4) File's Owner 선택해 "Picker View"와 "Label"에 각각 변수연결
5) UIPickerViewDataSource 클래스의 " required" 메소스 추가
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
Picker Control의 Picker 갯수 (선택 항목 갯수)
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
Picker Control의 항목갯수 (행 갯수)
6) UIPickerViewDelegate 클래스의 " required" 메소스 추가
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)
component
Picker Control의 각 항목의 내용 입력
7) 헤더 파일에, <UIPickerViewDataSource,UIPickerViewDelegate> 에서 상속됨을 표시
8) View 화면에서 "Picker View"를 File's Owner로 Drag & Drop하여, dataSource와 delegate를 연결
3. 출력 데이터를 적용
1) 헤더파일 멤버변수 추가
- NSMutableArray *pickData; 추가
2) 배열 초기값 입력
- (void)viewDidLoad 함수에서 pickData
- NSMutableArray 초기화 방법 적용
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
pickData = [[NSMutableArray alloc]init];
[pickData addObject:@"1등입니다."];
[pickData addObject:@"2등입니다."];
[pickData addObject:@"3등입니다."];
[pickData addObject:@"4등입니다."];
[pickData addObject:@"5등입니다."];
[pickData addObject:@"6등입니다."];
[pickData addObject:@"7등입니다."];
3) 선택된 항목을 Label에 출력하기
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
//NSLog(@"value : %i", row);
selectedText.text = [pickData objectAtIndex:row];
}
4. Source 및 해더 파일
@interface PickerTestViewController: UIViewController {
IBOutlet UIPickerView *dataPicker;
IBOutlet UILabel *selectedText;
NSMutableArray *pickData;
}
@end
...
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
pickData = [[NSMutableArray alloc]init];
[pickData addObject:@"1등입니다."];
[pickData addObject:@"2등입니다."];
[pickData addObject:@"3등입니다."];
[pickData addObject:@"4등입니다."];
[pickData addObject:@"5등입니다."];
[pickData addObject:@"6등입니다."];
[pickData addObject:@"7등입니다."];
[super viewDidLoad];
}
...
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return [pickData count];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return [pickData objectAtIndex:row];
// return @"피커뷰 입니다.";
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
NSLog(@"value:%i",row);
selectedText.text = [pickData objectAtIndex:row];
}
- (void)dealloc {
[pickData release];
[dataPickerrelease];
[selectedText release];
[super dealloc];}
...
Source 중에 NSLog(@"value:%i",row); 와 같이 출력하고자 하는 Text를 문법에 맞춰 코딩하고, 실행시 Xcode의 gdb버튼을 클릭하면, 해당 소스가 실행될때, gdb 실행윈도우에 문법에 해당하는 Text가 출력됨.
pickData 이넘을 release 해주는 것인 맞는 것인가요?
'아이폰개발 > AppsNext강좌정리' 카테고리의 다른 글
[AppsNext] iPhone SDK 기본강좌_11강 기타 컨트롤(Segment, Switch, Slide, Progress) (0) | 2010.06.28 |
---|---|
[AppsNext] iPhone SDK 기본강좌_10강 UIAlertView, UIActionSheet 사용해보기 (1) | 2010.06.25 |
[AppsNext] iPhone SDK 기본강좌_8강 Xib 파일간 값 전달 (0) | 2010.06.18 |
[AppsNext] iPhone SDK 기본강좌_7강 탭바컨트롤러(테이블+네비게이션+탭바) (0) | 2010.06.17 |
[AppsNext] iPhone SDK 기본강좌_6강 다중 Xib 사용하기 (0) | 2010.06.15 |