1

ポップオーバーには独自の「完了」ボタンがあります。このオプションをタップしてポップオーバーを閉じたいのですが、方法がわかりません。これはアプリのキャプチャです

画面キャプチャ

作成コード (VisitVC という名前の rootview コントローラー内)

- (IBAction)showStartEndEvent:(id)sender {

    if ([[UIDevice currentDevice].model hasPrefix:@"iPhone"])
        [self performSegueWithIdentifier:@"viewSceneStartEndEvent" sender:self];

    else
    {
        //iPad Popover Section
        if (!startEndEventPopover || !startEndEventPopover.popoverVisible)
        {
            StartEndEventVC *controller     = [self.storyboard instantiateViewControllerWithIdentifier:@"StartEndEventVC"];

            controller.FecInicioDateSE      = self.fecInicioDateV;
            controller.fecFinDateSE         = self.fecFinDateV;

            navController               = [[UINavigationController alloc]initWithRootViewController:controller];
            navController.toolbarHidden = FALSE;

            startEndEventPopover        = [[UIPopoverController alloc] initWithContentViewController:navController];

            [startEndEventPopover presentPopoverFromRect:CGRectMake(400, [sender convertPoint:[sender bounds].origin toView:self.view].y, 300, 400) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
            }
        else{
            [startEndEventPopover dismissPopoverAnimated:YES];
            startEndEventPopover = nil;
        }
    }
}

ポップオーバー コントローラー内の「完了」ボタン コード (StartEndEventVC)

- (IBAction)saveChanges:(id)sender {

    if (fechaInValida) {
        [[[UIAlertView alloc]initWithTitle:@"Notificación" message:@"La fecha de inicio debe ser anterior a la fecha de finalización" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
        return;
    }

    [self comparaFechaInicio];


    [self.startDateLabel    removeObserver:self forKeyPath:@"text"];
    [self.endDateLabel      removeObserver:self forKeyPath:@"text"];

    [CurrentParentViewController setFecFinDateV:self.fecFinDateSE];
    [CurrentParentViewController setFecInicioDateV:self.fecInicioDateSE];


    if ([[UIDevice currentDevice].model hasPrefix:@"iPhone"])
        [self.navigationController popViewControllerAnimated:YES];
    else{
        [self.navigationController dismissViewControllerAnimated:YES completion:^{}];
    }
}

ポップオーバーを閉じるためのコード キーはブロックにあります。

if ([[UIDevice currentDevice].model hasPrefix:@"iPhone"])
    [self.navigationController popViewControllerAnimated:YES];
else{
    **[self.navigationController dismissViewControllerAnimated:YES completion:^{}];**
}

しかし、方法がわからない、アイデアはありますか???

4

2 に答える 2