2011-07-04 3 views
2

IPHONE 문제 ... 여러 템플릿을 시도하고 다른 사람들로부터 도움을 받았지만이 작업을 수행하지 못하는 것 같습니다. 너무 어려워. "3 구성 요소"와 함께 UIPickerView를 추가하고 싶습니다. 각각은 숫자 값 (예 : 각각 50-100 사이)을 선택하고 메시지 창에서 선택한 내용을 표시합니다. (계산 부분은 나중에 설명 하겠지만 문제가 발생하면 문제가되는 세 번째 열을 올바르게 등록해야합니다 .... 어떤 아이디어?3 구성 요소를 만드는 방법 UIPickerView (다른 사람 ???) iPhone

* 나는 가장 경험이 많지 않지만, 매우 현명한 사람들의 답변을 얻을 수있는 좋은 곳이라고 들었습니다. 저는 누군가가 3 가지 구성 요소 UIPickerView를 제공 할 수있는 "TEMPLATE"개요를 진심으로 감사드립니다. >>> 감사의 말 >>> Lawrence

이것은 내 ViewController.m 코드입니다.

#import "DoubleComponentPickerViewController.h" 

@implementation DoubleComponentPickerViewController 

@synthesize doublePicker; 
@synthesize oneTypes; 
@synthesize twoTypes; 
@synthesize threeTypes; 


// The designated initializer. Override to perform setup that is required before the view is loaded. 
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { 
     // Custom initialization 
    } 
    return self; 
} 


-(IBAction)buttonPressed 
{ 
    NSInteger oneRow = [doublePicker selectedRowInComponent: 
          kOneComponent]; 
    NSInteger twoRow = [doublePicker selectedRowInComponent: 
          kTwoComponent]; 
    NSInteger threeRow = [doublePicker selectedRowInComponent: 
          kThreeComponent]; 
    NSString *one = [oneTypes objectAtIndex:oneRow]; 
    NSString *two = [twoTypes objectAtIndex:twoRow]; 
    NSString *three = [threeTypes objectAtIndex:threeRow]; 

    NSString *message = [[NSString alloc] initWithFormat: 
    @"First = %@   Second = %@   Third = %@",one, two, three]; 

    UIAlertView *alert =[[UIAlertView alloc] initWithTitle:@"Please Confirm Numbers" message:message delegate:nil cancelButtonTitle:@"Confirm" otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 
    [message release]; 
} 


/* 
// Implement loadView to create a view hierarchy programmatically, without using a nib. 
- (void)loadView { 
} 
*/ 



// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 

    NSArray *oneArray = [[NSArray alloc] initWithObjects: 
    @"91",@"92",@"93",@"94",@"95",@"96",nil]; 
    self.oneTypes = oneArray; 
    [oneArray release]; 

    NSArray *twoArray = [[NSArray alloc] initWithObjects: 
    @"97",@"98",@"99",@"100",@"101",@"102",@"103", nil]; 
    self.twoTypes = twoArray; 
    [twoArray release]; 

    NSArray *threeArray = [[NSArray alloc] initWithObjects: 
    @"102",@"103",@"104",@"105",@"106",@"107", nil]; 
    self.threeTypes = threeArray; 
    [threeArray release]; 
    [super viewDidLoad]; 
} 



// Override to allow orientations other than the default portrait orientation. 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 


- (void)didReceiveMemoryWarning { 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

- (void)viewDidUnload { 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 


- (void)dealloc { 
    [doublePicker release]; 
    [oneTypes release]; 
    [twoTypes release]; 
    [threeTypes release]; 
    [super dealloc]; 
} 


-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
    { 
    return 3; 
    } 

-(NSInteger)pickerView:(UIPickerView *)pickerView 
    numberOfRowsInComponent:(NSInteger)component 
    { 
     if (component == kOneComponent) 
     return[self.oneTypes count]; 
     return[self.twoTypes count]; 
     return[self.threeTypes count]; 

     if (component == kTwoComponent) 
     return[self.oneTypes count]; 
     return[self.twoTypes count]; 
     return[self.threeTypes count]; 

     if (component == kThreeComponent) 
     return[self.oneTypes count]; 
     return[self.twoTypes count]; 
     return[self.threeTypes count]; 
    } 

-(NSString *)pickerView:(UIPickerView *)pickerView 
    titleForRow:(NSInteger)row 
    forComponent:(NSInteger)component 
    { 
    if (component == kThreeComponent) 
    return [self. threeTypes objectAtIndex:row]; 
    return [self. twoTypes objectAtIndex:row]; 
    return [self. oneTypes objectAtIndex:row]; 

    } 



@end 
+0

문서는 당신의 친구입니다 구현할 수 있습니다. 친구의 말을 들어보십시오. – dasdom

답변

2

데이터 소스 메소드를 구현할 수 있습니다

// returns the number of 'columns' to display. 
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; 

// returns the # of rows in each component.. 
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component; 

을이야 그리고 당신은 대리자 메서드

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component; 
+0

어디에 추가 할 것인지 잘 모르겠습니다. 추가 할 경우 추가 할 항목은 무엇입니까? 어떤 제안 ... 이것은 내 viewController.m 파일입니다. – Lawrence

+0

예, pickerView.delegate = self;라고 쓸 수 있습니다. 및 pickerView.datasource = self; 동일한 컨트롤러에서 위의 방법을 구현할 수 있습니다. – iMOBDEV

+0

빠른 답변 주셔서 감사합니다. 나는 그것을 밖으로 시도 할 것입니다. 누군가와 대화하고, 일을하는 법을 정말로 아는 것처럼 보이는 도움을주기 위해 정기적으로 질문하는 것이 좋을 것입니다 .... – Lawrence

관련 문제