1

私はiPhoneプログラミングの初心者です。

1つのビューに3つのuipickerを追加しました。

  1. 従業員の最初のピッカー。
  2. 2番目のピッカーは製品用です。
  3. 顧客のための3番目のピッカー。

上記のためにsqliteで3つのテーブルを作成しました。そして、テーブルからピッカーに値をロードする必要があります。

XiBファイルに3つのピッカーを保持する必要がありますか?

テーブルセルをクリックしたときにピッカーが表示されるようにしたい(テーブルビューがあるのは明らかです...ピッカーから目的の値を選択します)

とりあえず、配列を静的に追加しました。しかし、私はそれをsqliteデータベースからロードしたかったのです。

接続する方法は?

値を表示する方法は?

私は何をすべきか?

手伝ってくれませんか。

私はそれを4日間いじっています。誰か助けてくれませんか…。

カティ

4

1 に答える 1

0
  1. データベースの読み取りが完了したら、コードを使用して 3 つの UiPickerView を作成します。
  2. データベースに従って値を設定します
  3. UIPicker ごとに個別のタグ (1、2、3) を設定します。その後、どこでも再び取得できます。
  4. UiPickerView デリゲートを設定します。

    [yourPicker selectRow:10 inComponent:0 animation:YES]を使用します。ピッカーが選択した値を設定する

UIPicker を追加するサンプル コード

-(void)displayPicker{   

    @try {

        UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 200, 44)];
        pickerToolbar.barStyle = UIBarStyleBlackOpaque;
        [pickerToolbar sizeToFit];

        NSMutableArray *barItems = [[NSMutableArray alloc] init];       

        UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(pickerCancel:)];
        cancelBtn.tag = 1;
        [barItems addObject:cancelBtn];
        [cancelBtn release];
        cancelBtn = nil;

        /*  Uncomment this line to add label to Timer/Counter. 

        NSString *popUpTitleText = [self getPopUpTitleText:@"My Text"];         
        UIBarButtonItem *titleBtn = [[UIBarButtonItem alloc] initWithTitle:popUpTitleText style:UIBarButtonItemStylePlain target:nil action:nil];
        [barItems addObject:titleBtn];
        [titleBtn release];
        titleBtn = nil;

         */

        UIBarButtonItem *flexItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace  target:nil  action:nil];
        flexItem.width = 64;                                     
        [barItems addObject:flexItem];
        [flexItem release];
        flexItem = nil;


        UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(pickerDone:)];
        doneBtn.tag = 1;
        [barItems addObject:doneBtn];       
        [doneBtn release];
        doneBtn = nil;

        [pickerToolbar setItems:barItems animated:YES];     
        [barItems release];
        barItems = nil;

        CGRect pickerFrame = CGRectMake(0, 40, 0, 216);     
        UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:pickerFrame];
        pickerView.showsSelectionIndicator = YES;
        pickerView.tag = 1;
        pickerView.dataSource = self;
        pickerView.delegate = self;     
        CGRect pickerRect = pickerView.bounds;
        pickerView.bounds = pickerRect;


        UIViewController* popoverContent = [[UIViewController alloc] init];
        UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 344)];
        popoverView.backgroundColor = [UIColor whiteColor];     
        pickerView.frame = CGRectMake(0, 44, 200, 216);


        [pickerView selectRow:1 inComponent:0 animated:YES]; //set your selected (Database) value here.

        [popoverView addSubview:pickerToolbar];
        [popoverView addSubview:pickerView];
        popoverContent.view = popoverView;

        //resize the popover view shown
        //in the current view to the view's size
        popoverContent.contentSizeForViewInPopover = CGSizeMake(200, 244);


        //create a popover controller       
        popoverController.delegate = nil;   
        if (popoverController.popoverVisible == YES) {

            [popoverController dismissPopoverAnimated:YES];
        }
        [popoverController release];
        popoverController = nil;
        popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
        CGRect popoverRect = [self.view convertRect:yourFrame(CGrect) 
                                           fromView:[yourView superview]];
        popoverRect.origin.y = popoverRect.origin.y + 15;
        popoverController.delegate = self;
        popoverRect.size.width = MIN(popoverRect.size.width, 100) ;     

        popoverRect.origin.x = float yourXvalue;    

        [popoverController  presentPopoverFromRect:popoverRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

        //release the popover content
        [popoverView release];
        [popoverContent release];
        [pickerToolbar release];
        [pickerView release];

        popoverView = nil;
        popoverContent = nil;
        pickerToolbar = nil;
        pickerView = nil;   
    }
    @catch (NSException * ex) {

        NSLog(@"Exception in YourClass Method: displayPicker() Name:%@ Reason:%@",[ex name],[ex reason]);
    }
}
于 2012-09-13T07:09:08.757 に答える