0

私は2つのテーブルビューを持っています.1つと2つとしましょう.1つはテキストフィールドがタップされたときに2つを提示します.

-(void) setProducts:(UITextField *) box
{
UIViewController *selectInBox = [self.storyboard instantiateViewControllerWithIdentifier:@"selectingProducts"];
popover = [[UIPopoverController alloc] initWithContentViewController:selectInBox];
[popover presentPopoverFromRect:box.bounds inView:box permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}

-(BOOL)textFieldShouldBeginEditing:(UITextField *) textField
{
if (textField.tag == 2)
{
    [self setProducts:textField];

}

テーブル「2」がポップオーバー内とテキストフィールドの下に表示されるまで、すべてがうまく機能しますが、テーブル「2」には、テーブルビュー「2」(テーブルビュー「1」内)を閉じるはずのキャンセルボタンがあります。だから私はテーブルビュー「2」で私のキャンセル方法に行きました、そして私はこれをしましたが、それはうまくいきませんでした。

- (IBAction)cancel:(id)sender
{
[self removeFromParentViewController];
}

私も試しました:

- (IBAction)cancel:(id)sender
{
 one *aux = [[one alloc]init];
 [aux.popover dismissPopoverAnimated:YES] //popover is a property of tableview one.  
}

も試しました:「if self isBeingPresented」...そして何も機能していません!

何か案は?ヘルプ!

前もって感謝します

4

1 に答える 1

0

私はこれを、フォーム シートとして (モーダルに) 表示される "ポップオーバー" でうまく使用しました。

- (IBAction)cancelButtonTapped:(id)sender
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

DismissPopoverAnimated:YES... は、表示中のビュー コントローラーから呼び出す必要があります。

于 2013-01-09T11:04:42.280 に答える