0

ビューをタップするとアプリにポップオーバーが表示され、そのポップオーバーにはナビゲーションコントローラーがあります。ビュー間を移動でき、データが正しく表示されます。しかし、最後のビューで行をタップすると、ポップオーバーが消えません (didSelectRowAtIndexPath が必要です)。

どうすればそれができますか?

この方法で試してみました。ポップオーバーを閉じるメソッドを作成し、このメソッドを 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];
}

このView Controllerでメソッドを作成します

-(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 のグラフィカ インスタントは、最初にポップオーバーに表示された VieController のインスタントと同じではありません。

于 2012-04-17T01:42:25.153 に答える