1

私のアプリでは、モーダル ビューを表示しました。モーダル ビューでは、テーブル ビューとボタンを含むビュー (Extraview) を取得しました。

このボタンから、ビュー (LeftsideView) を含む popview を開きます。

-(IBAction)popOverBtnPressed:(id)sender
{
    LeftSideVCViewController *popUp=[[LeftSideVCViewController alloc] initWithNibName:@"LeftSideVCViewController" bundle:nil];



    popView = [[UIPopoverController alloc]initWithContentViewController:popUp];
    popView.delegate =self;

    [popView setPopoverContentSize:CGSizeMake(300, 700)];
    [popView presentPopoverFromRect:CGRectMake(150,30,20,40) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

}

ここに画像の説明を入力 ここに画像の説明を入力

ここで、左側のビューのテーブル行の選択でモーダル ビューを閉じたいと思います。これどうやってするの。

4

3 に答える 3

2

あなたの問題でPopOverを提示するのは別のクラスであり、メソッドを却下するのは別のクラスなので、NSNotificationCenterベローのように実装する必要があります:-

ViewDidLoadメソッドの PopOVER で作成されたクラスに通知を追加します。

- (void)viewDidLoad
{

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(dismisPopoverInnerPageTeam:)
                                                 name:@"InnerPop"
                                               object:nil];


    [super viewDidLoad];

}

-(void)dismisPopoverInnerPageTeam:(NSNotification *)notification {

    [yourPopOver dismissPopoverAnimated:YES];
}

今、あなたのLeftSideVCViewControllerクラスUITableView Delegateメソッドからこのメソッドを呼び出す必要がありますdidSelectRowAtIndexPath:-

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
     [[NSNotificationCenter defaultCenter] postNotificationName:@"InnerPop" object:self];

}

それがあなたを助けることを願っています:)

于 2013-01-09T06:58:29.930 に答える
0

これを試して:

[popoverController disconnectPopoverAnimated:YES];

于 2013-01-09T06:47:24.840 に答える
0

私はこれを次のように解決しました:

投稿通知に登録した後。

最初にポップオーバーを閉じてから、提示されたモーダル ビューを閉じる必要があります。

-(void)dismissModal:(NSNotification *)notification
{

     [popView dismissPopoverAnimated:YES];
   [self dismissViewControllerAnimated:YES completion:nil];


}
于 2013-01-09T07:44:32.420 に答える