2 Stimmen

Wie holt man die aktuell ausgewählte Zeile in der Uipickerview, wenn man auf Fertig tippt (mit mehreren Pickern)

Ich habe UIPickerview in meiner Anwendung funktioniert einwandfrei.

Ich möchte das Standardauswahlverhalten des UIPickerview Ich meine, ich habe eine Erledigt-Schaltfläche in der UIToolbar . Die Symbolleiste wird in der UIPickerview .

Immer wenn der Benutzer auf die Schaltfläche "Fertig" tippt, möchte ich den markierten Eintrag als ausgewählt betrachten. Das heißt, der Benutzer kann sich nach oben und unten bewegen. Wenn der Benutzer auf die Schaltfläche "Fertig" tippt, möchte ich die Auswahl jetzt berücksichtigen.

Bitte lassen Sie mich wissen, wie kann ich die aktuell ausgewählte Zeile für die UIPickerview wenn Sie auf die Schaltfläche "Fertig" tippen

Hinweis: Ich habe 3 Picker in meiner Ansicht (ich meine, ich möchte Pickerview Tag und Pickerview ausgewählte Zeile haben)

2voto

Dipen Chudasama Punkte 3013
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    NSString *str = [yourarray objectAtIndex:row];   
}

Jetzt haben Sie einen ausgewählten Wert, den Sie verwenden können, wenn Sie die Taste gedrückt haben.

2voto

UPT Punkte 1500

//Angenommen, Sie haben drei Picker-Ansichten erstellt: firstPickerView, secondPickerView und ThirdPickerView

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    if(pickerView == firstPickerView)
    {
        NSString *strFirstPickerView = [yourarray objectAtIndex:row];
    }
    else if(pickerView == secondPickerView)
    {
        NSString *strSecondPickerView = [yourarray objectAtIndex:row];
    }
    else
    {
        NSString *strThirdPickerView = [yourarray objectAtIndex:row];
    }
}

2voto

Lily Punkte 387

SelectedRowInComponent:

- Returns the index of the selected row in a given component.
- (NSInteger)selectedRowInComponent:(NSInteger)component

Parameter Komponente Eine mit Null indizierte Zahl, die eine Komponente der Picker-Ansicht identifiziert. Rückgabewert Eine mit Null indizierte Zahl, die die ausgewählte Zeile identifiziert, oder -1, wenn keine Zeile ausgewählt ist.

Für Hilfe

Und um einen Unterschied zwischen verschiedenen PickerViews zu machen, fügen Sie jedem der Picker ein Tag hinzu:

 self.pikcerView.tag = 1;

Ich hoffe, das hilft.

0voto

Nimit Parekh Punkte 16581

Folgendes Beispiel für den UIPickerview-Controller

.m-Dateien hier

#import "SingleComponentPickerViewController.h"
@implementation SingleComponentPickerViewController
@synthesize singlePicker;
@synthesize pickerData;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
        // Custom initialization
    }
    return self;
}

-(IBAction)buttonPressed1
{
    NSInteger row = [singlePicker selectedRowInComponent:0];
    NSString *selected = [pickerData objectAtIndex:row];
    NSString *title = [[NSString alloc] initWithFormat:
                       @"you selected %@!", selected];
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title
                                                   message : @"Thank you for choosing."
                                                   delegate:nil
                                         cancelButtonTitle :@"Welcome"             
                                         otherButtonTitles :nil];
    [alert show];
    [alert release];
    [title release];
}

- (void)viewDidLoad {

    NSArray *array = [[NSArray alloc] initWithObjects:@"iPhone",@"iPad",@"iPod",@"iMac",@"Mac",
                      @"iBook",@"Safari",nil];
    self.pickerData = array;
    [array release];
    [super viewDidLoad];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

- (void)viewDidUnload {
}

- (void)dealloc {
    [singlePicker release];
    [pickerData release];
    [super dealloc];
}

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

-(NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component
{
    return [pickerData count];
}

-(NSString *)pickerView:(UIPickerView *)pickerView
            titleForRow:(NSInteger)row
           forComponent:(NSInteger)component 
{
    return[pickerData objectAtIndex:row];
}

@end

und .h-Datei hier

#import <UIKit/UIKit.h>

@interface SingleComponentPickerViewController : UIViewController {
    IBOutlet UIPickerView *singlePicker;
    NSArray *pickerData;
}
@property(nonatomic , retain) UIPickerView *singlePicker;
@property(nonatomic , retain) NSArray *pickerData;

-(IBAction)buttonPressed1;

@end

glückliche Kodierung @samuel

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X