2011-04-12 101 views
-3

我有一个弹出窗口,它载入一个导航控制器,它显示了ItemsView xib,并且我有一个委托方法,所以这个弹出窗口可以从主视图控制器中消除。这工作得很好,直到我钻入UITableView(加载详细视图)的下一级。一旦细节视图被加载,我不能在主视图控制器上调用dismiss方法。我对代表们很新颖,希望得到任何指导。谢谢!调用UIPopover的委托方法

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

如何调用位于距离的MainView代表的DetailView方法?

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


} 

回答

2

写在详细视图中的属性和方法等如下。

  • 属性为ID myParent
  • 方法(无效)的setParent:父{myParent =母体;}

同时推detailviewcontroller调用此方法如。

  • [detailViewcontroller setParent:self];

现在你可以调用父声明的方法

  • [myParent yourMethodName]

希望这有助于

+1

工作就像一个魅力。谢谢你为我解决这个谜团! – 2011-04-12 10:41:01

+0

我很高兴它为你工作。 – 2011-04-12 12:08:19