从UIPopover调用Delegate方法

时间:2011-04-12 09:30:59

标签: iphone delegates uipopover

我有一个带有导航控制器的popover,它显示了ItemsView xib,我有一个委托方法,所以这个popover可以从主视图控制器中解除。这非常好用,直到我深入到UITableView(加载详细视图)的下一个级别。加载详细信息视图后,我无法在主视图控制器上调用dismiss方法。我是代表们的新手,非常感谢任何指导。谢谢!

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];


}

1 个答案:

答案 0 :(得分:2)

  

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

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

推送detailviewcontroller时调用此方法为。

  • [detailViewcontroller setParent:self];
  

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

  • [myParent yourMethodName];

希望这有帮助