1

私はこのコードを持っています。これは、ユーザーがテキストフィールドを選択して日付ピッカーを表示したときにトリガーされるアクション内にあります。

    pickerViewPopup = [[UIActionSheet alloc] initWithTitle:nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];

    pickerView = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 44, 0, 0)];
    pickerView.datePickerMode = UIDatePickerModeDateAndTime;
    pickerView.hidden = NO;
    pickerView.date = [NSDate date];

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

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

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

    UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(doneButtonPressed:)];
    [barItems addObject:doneBtn];

    [pickerToolbar setItems:barItems animated:YES];

    [pickerViewPopup addSubview:pickerToolbar];
    [pickerViewPopup addSubview:pickerView];
    [pickerViewPopup showFromTabBar:self.tabBarController.tabBar];
    [pickerViewPopup setBounds:CGRectMake(0,0,320, 500)];

ナビゲーション用のタブバーを備えたアプリでこのコードを使用していました。今、それなしでアプリで使用したいのですが、プロセスが到達[pickerViewPopup showFromTabBar:self.tabBarController.tabBar];するとクラッシュします。

どうすれば修正できるかについて何か考えはありますか?

4

1 に答える 1

2

次のいずれかを使用します。

– showFromToolbar:
– showInView:
– showFromBarButtonItem:animated:
– showFromRect:inView:animated:

例:-

[pickerViewPopup showFromToolbar:pickerToolbar];

問題は、タブ バーがなく、タブ バー オブジェクトにアクセスしてそこからピッカーを表示しようとしていることです。tabbar は nil であるため、クラッシュします。

詳細については、アップルのドキュメントを確認してください。

于 2012-11-29T19:50:09.010 に答える