3

ここに画像の説明を入力

完了およびキャンセル ボタンを使用して、pickerView の上部に UIToolBar を含む UIPickerView を表示したいです。添付されているのは同じスクリーン ショットです。また、ビューの下部にタブ バー コントローラーがあり、下部バーの上に pickerView を表示したいのはそのためです。アクションシート内でuipickerViewを使用しています.今私の問題は、UIActionSheetに追加されたcancelButtonクリックでそのpickerViewを閉じる方法ですか?

以下は pickerView を表示する関数です:

-(IBAction)setMile:(id)sender
   {
      menu = [[UIActionSheet alloc] initWithTitle:nil
                                                  delegate:self
                                         cancelButtonTitle:nil
                                    destructiveButtonTitle:nil
                                         otherButtonTitles:nil];
    // Add the picker
    UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0,55,0,0)];
    pickerView.delegate = self;
pickerView.showsSelectionIndicator = YES;    // note this is default to NO

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

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


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

UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[barItems addObject:flexSpace];
[flexSpace release];
flexSpace=nil;

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


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

[menu addSubview:pickerToolbar];
[menu addSubview:pickerView];
[menu showInView:self.view];
//[menu showFromTabBar:[[self tabBarController] tabBar]];  this code is not working
[menu setBounds:CGRectMake(0,0,320, 545)];
[pickerView release];
[menu release];
pickerView=nil;
menu=nil;
}

キャンセルボタンのクリック時に次のコードがあります

-(IBAction)setMileCancel:(id)sender
 {
   //[menu removeFromSuperview];
   [menu dismissWithClickedButtonIndex:0 animated:YES];
 }
4

3 に答える 3

2
 //   menu=nil;
 Please comment this line, then it will work
于 2012-11-17T04:16:06.780 に答える
1

なぜUIActionSheetこれを達成するために a を使用しているのですか? を の に、UIPickerViewのをにします。そうすれば、乱雑なコードを使用せずに、テキストフィールドでandを閉じるだけで済みます! 詳細については、UITextField リファレンスを参照してください。それが役立つことを願っています!inputViewUITextFieldUIToolBarinputAccessoryViewUITextFieldbecome/resignFirstResponderUIPickerViewUIToolBar

于 2012-11-17T04:33:11.540 に答える
0

問題を解決しました。上記のコードから次の2行を削除するだけです:

[menu release];
menu=nil;
于 2012-11-17T04:54:39.130 に答える