-3

我有一个加载了导航控制器的弹出框,它显示 ItemsView xib,并且我有一个委托方法,因此可以从主视图控制器中解除此弹出框。这工作得很好,直到我深入到 UITableView 中的下一个级别(加载详细视图)。加载详细视图后,我无法在主视图控制器上调用解除方法。我对代表们很陌生,希望得到任何指导。谢谢!

MainView ---> ItemsView -----> DetailView

如何从 DetailView 调用位于 MainView 上的委托方法?

//Load the popover with first view:

    ItemsView *popoverView = [[ItemsView alloc] init];

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:popoverView];

self.popOverController = [[[UIPopoverController alloc] initWithContentViewController:navController] autorelease];

popoverView.delegate = self;

[navController release];

[popOverController setPopoverContentSize:CGSizeMake(450.0, 300.0)];
[popOverController presentPopoverFromRect:addButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];

[popoverView release];

现在我推送详细视图:

//Push DetailView

    if(self.secondView == nil) {

    NSLog(@"Called");

    AddDetail *viewController = [[AddDetail alloc] initWithNibName:@"AddDetail" bundle:nil];

    self.secondView = viewController;

    [viewController release];

}

// Setup the animation

secondView.contentSizeForViewInPopover = self.view.bounds.size;
self.contentSizeForViewInPopover = self.view.bounds.size;

[self.navigationController pushViewController:self.secondView animated:YES];


}
4

1 回答 1

2

在详细视图中编写属性和方法,如下所示。

  • 属性为 id myParent
  • 方法为 (void)setParent:parent { myParent = parent;}

在推送 detailviewcontroller 时调用此方法。

  • [detailViewcontroller setParent:self];

现在您可以将 Parent 中声明的方法调用为

  • [myParent yourMethodName];

希望这可以帮助

于 2011-04-12T09:46:34.573 回答