Iphone 如何从另一个ViewController关闭PopOverController

Iphone 如何从另一个ViewController关闭PopOverController,iphone,ios,uinavigationcontroller,uipopovercontroller,Iphone,Ios,Uinavigationcontroller,Uipopovercontroller,我在主菜单中有一个按钮..点击该按钮将显示一个名为bookselectionview的PopoveController,它由tableview组成,当我点击cel时,它将导航到popover中的另一个视图控制器,seondview由按钮组成,,当我点击任何按钮时,它会导航到popover控制器内的第三视图控制器…一切正常…但我的问题是,,,当我点击第三视图中的任何按钮时,我想关闭这个popover控制器…并且必须导航到主视图..现在它显示了popover控制器内的主视图..我尝试了很多方法,,但

我在主菜单中有一个按钮..点击该按钮将显示一个名为bookselectionview的PopoveController,它由tableview组成,当我点击cel时,它将导航到popover中的另一个视图控制器,seondview由按钮组成,,当我点击任何按钮时,它会导航到popover控制器内的第三视图控制器…一切正常…但我的问题是,,,当我点击第三视图中的任何按钮时,我想关闭这个popover控制器…并且必须导航到主视图..现在它显示了popover控制器内的主视图..我尝试了很多方法,,但是没有什么能帮我…我的代码是

在主视图的工具栏按钮中,我输入了以下代码

  BookSelectionview* popoverContent = [[BookSelectionview alloc]
                                         init];    
    UINavigationController *navigationController = [[[UINavigationController alloc] initWithRootViewController:popoverContent] autorelease];

    popoverContent.contentSizeForViewInPopover =
    CGSizeMake(500, 800);

    self.popup = [[UIPopoverController alloc]
                              initWithContentViewController:navigationController];

    [self.popup presentPopoverFromRect:CGRectMake(348, 0, 0, 0)
                                            inView:self.view
                          permittedArrowDirections:UIPopoverArrowDirectionAny
                                          animated:YES];
然后在我的bookselectionview控制器中,我将此ode放在我的tableview中,并选择了方法

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {


 ChapterSelectionView *detailViewController = [[ChapterSelectionView alloc] initWithNibName:@"ChapterSelectionView" bundle:nil];
    detailViewController.contentSizeForViewInPopover =
    CGSizeMake(500, 600);

    //detailViewController.firstString = firstString;
    // ...
    // Pass the selected object to the new view controller.
    detailViewController.selectedIndex=indexPath.row;
    appDelegate.selectedBookIndex=indexPath.row;
    self.hidesBottomBarWhenPushed=YES;
    [self.navigationController pushViewController:detailViewController animated:YES];

    [detailViewController release];

}
在我的SeconView章节SelectionView中,我将此代码放在按钮cilk中

-(void)ButtonClicked:(UIButton *)sender{
    [NSThread detachNewThreadSelector: @selector(spinBeginchapterselection) toTarget:self withObject:nil];

        VersusSelectionView *detailViewController = [[VersusSelectionView alloc] initWithNibName:@"VersusSelectionView" bundle:nil];
    detailViewController.contentSizeForViewInPopover =
    CGSizeMake(500,600);

    detailViewController.selectedChapter=[sender.titleLabel.text intValue];
    appDelegate.selectedChapterIndex=[sender.titleLabel.text intValue];
    self.hidesBottomBarWhenPushed=YES;
    [self.navigationController pushViewController:detailViewController animated:YES];

    [detailViweController relese];
然后在我的第三个视图,即verseviewcontroller中,我将此代码导航到主ViewParallelreaViewController,然后我需要关闭弹出窗口

-(void)ButtonClicked:(UIButton *)sender{
    [self dismissModalViewControllerAnimated:YES];
    [NSThread detachNewThreadSelector: @selector(spinBeginverseselection) toTarget:self withObject:nil];



    appDelegate.selectedBook = [appDelegate.books objectAtIndex:appDelegate.selectedBookIndex];
    appDelegate.selectedChapter = [NSString stringWithFormat:@"%d",appDelegate.selectedChapterIndex];
    appDelegate.selectedVerse = [NSString stringWithFormat:@"%d",[sender.titleLabel.text intValue]];
    [appDelegate reloadVerses];

        ParallelReadViewController *detailViewController = [[ParallelReadViewController alloc] initWithNibName:@"ParallelReadViewController" bundle:nil];

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

    [detailViewController release];
 please help me to solve this problem,,,thanks in advance.
试试这个答案