0

我有一个应用程序,它分为四个视图,当我点击一个视图时,应用程序会显示一个弹出框,并且该弹出框有一个导航控制器。我可以在视图之间导航,并且数据显示正确。但是当我在最后一个视图中并点击一行时,弹出框不会关闭(我想要在 didSelectRowAtIndexPath 中)。

怎么可能做到?

我以这种方式尝试过,我创建了一个关闭弹出框的方法,我将此方法称为 en didSelectRowAtIndexPath,但没有奏效。

这是主 ViewController 中的方法

-(IBAction)mostrarTabla:(id)sender
{
    // Popover that shows the table
    UIPopoverController *popover;

    // RootViewController is the first view

    RootViewController *rootViewController = [[RootViewController alloc] init];
    // With a nav bar
    UINavigationController *navBar = [[UINavigationController alloc] initWithRootViewController:rootViewController];
    [rootViewController release];

    // Popover customitation
    navBar.contentSizeForViewInPopover = CGSizeMake(20.0f, 20.0f);
    popover = [[UIPopoverController alloc] initWithContentViewController:navBar];
    [navBar release];
    popover.delegate = self;
    popover.popoverContentSize = CGSizeMake(320.0f, 832.0f);

    // PopOver is shows in the view 1
    [popover presentPopoverFromRect:CGRectMake(100.0f, 10.0f, 20.0f, 20.0f) inView:_view1 permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

我在这个视图控制器中创建了一个方法

-(void)hidePopover
{
    [self.popOver dismissPopoverAnimated:YES];
}

在最后一个视图中,我使用了该方法但没有用

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    ViewController *grafica = [[ViewController alloc] init];

    self.indicadorId = [[self.arrayId objectAtIndex:indexPath.row] integerValue];

    DataIndicador *datos =[[DataIndicador alloc] init];

    datos.idIndicador = self.indicadorId;

    [datos release];


    [grafica hidePopover];
}

在最后一个视图中,我希望弹出框返回其视图并显示数据(图表)

谢谢

4

1 回答 1

0

ViewController 的 grafica 瞬间与 VieController 最初呈现弹出框的任何瞬间不同。

于 2012-04-17T01:42:25.153 回答