2012-02-13 14 views
0

iOSでポップオーバーを閉じるにはどうすればいいですか?viewControllerをpopoverにコールしますが、ポップオーバーを閉じることはできません。dismiss.Howをどうすればいいですか?iOSボタンでポップオーバーを閉じるにはどうすればいいですか?

+0

"popover"とは、UIAlertViewを意味しますか?ボタンによって、UIAlertViewのボタン、または親Viewのボタンを意味しますか? – caleb

+0

私はUIALertView.popover isaの差異コンポーネントを意味しません。私は最初のビューから2つのビュー(ビューコントローラ)を持っています。私はpopoverを表示します。 2番目のビューから私はpopoverにアクセスできません。私はボタンを2番目のビューを入れます。私は2番目のビューからポップオーバーを閉じるには –

答えて

0

ただ、この使用:

- (void)dismissPopOver 
{ 
    [self.popOver dismissPopoverAnimated:YES]; 
    self.popOver = nil; 
} 

を、ボタンが押されたときにそのメソッドを呼び出します。

+0

私は最初のビューから2つのビュー(ビューコントローラ)を持っていますpopover.into popover display secondビュー。私は最初にポップオーバーを定義します。私はポップオーバーにアクセスすることができません。私はボタンを2番目のビューを置く。私は2番目のビューからポップオーバーを閉じたい。 –

+0

@niyazigarip次に、デリゲートパターンを使用して他のビューコントロールから閉じることができます –

+0

どうすれば目的のc –

0

私は通常、ポップオーバーの表示を変更するためのトグルとして機能するボタンを作成する必要があります。ここで私はいつもそれらを結んできた。

- (void)popoverButtonTapped:(id)button 
{ 
    if (self.popover != nil) 
    { 
     // If the popover is open, close it 
     [self.popover dismissPopoverAnimated:YES]; 
     self.popover = nil; 
    } 
    else 
    { 
     // Otherwise, open a new popover 
     self.popover = ...; 
     // This is important because you want to know if the popover was closed 
     // by tapping outside it or some external event 
     self.popover.delegate = self; 
    } 
} 

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController 
{ 
    if (popoverController == self.popover) 
    { 
     // nil out our reference since the popover was dismissed 
     self.popover = nil; 
    } 
} 
0

あなたはナビゲーションコントローラ&にそれの上にバーボタンを使用することができます。私のボタンのアクションは次のようになります。ナビゲーションコントローラに2番目のビューコントローラを挿入します。バーボタンアイテムを追加し、そのアクションを、最初のView Controller内でポップオーバーコントローラを閉じるメソッドに参照します。次のコードを使用することができます:

UIPopoverControllerを作成しているので、すでに最初のView Controllerの.hファイル内にUIPopoverConterollerDelegateを追加したことを前提としています。

最初のView Controllerの.hファイルにUIPopoverController *popover;と宣言してください。

ここで、ポップオーバーコントローラを作成するコードを記述します。

-(IBAction)createPopoverController 
{ 
    SecondViewController *secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 

    UIBarButtonItem *dismissButton = [[UIBarButtonItem alloc] initWithTitle:@"Dismiss" style:UIBarButtonItemStyleBordered target:self action:@selector(dismissButtonPressed:)]; 

    [secondViewController.navigationItem setRightBarButtonItem:dismissButton]; 

    UINavigationController* navC = [[UINavigationController alloc] initWithRootViewController:secondViewController]; 
    popover = [[UIPopoverController alloc] initWithContentViewController:navC]; 
    popover.delegate = self; 
    [popover setPopoverContentSize:CGSizeMake(secondViewController.view.frame.size.width, secondViewController.view.frame.size.height) animated:YES]; 
    [popover presentPopoverFromRect:yourButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 
    [secondViewController release]; 
} 

-(void)dismissButtonPressed:(id)sender 
{ 
    [popover dismissPopoverAnimated:YES]; 
} 

私はあなたを助けてくれることを願っています。 :)