dismissModalViewControllerAnimated无法正常工作

Pau*_*len 2 iphone model-view-controller uinavigationcontroller ios

我有一个带UINavigationController的UITabbarController.NavigationController中的视图呈现MVC(AddClockNavigationController).这个MVC有一个带有视图的nib和一个UINavigationController.NavigationController.view作为子视图添加到MVC的视图中.

我的MVC中的NavigationController有两个按钮,一个取消和一个完成.当按下其中任何一个时,MVC应该被解雇.这些按钮的IBActions位于UINavigationController的视图(AddClockViewController)中,但每当按下它们时,MVC就不会消失.如果我把动作放到MVC中,它就会消失.如果我把函数放在我的MVC中并使用[self.parentViewController myFunction]从我的viewController调用它,它就不会消失.

我怎么能让它从我的视线中消失?

我想我的言论非常混乱,但我希望你理解它.
我IB的观点: 在此输入图像描述

最诚挚的问候,
Paul Peelen

编辑 我有试过这个[self dismissModalViewControllerAnimated:YES];,[self.parentViewController dismissModalViewControllerAnimated:YES];,[self.navigationController dismissModalViewControllerAnimated:YES];,[self.parentViewController.navigationController dismissModalViewControllerAnimated:YES];和,如前所述,随着parentView贬的功能.什么都行不通.

Max*_*Max 7

当某个视图控制器呈现另一个时,它将成为父视图控制器.因此,如果你想解雇模态视图控制器,那么你必须选择:

  1. 从父视图控制器调用

    [self dismissModalViewControllerAnimated:YES];

要么

  1. 从模态视图控制器调用

    [self.parentViewController dismissModalViewControllerAnimated:YES];

您实际上不需要导航控制器(因为您不推/弹任何视图控制器).只需将UINavigationBar添加到MVC并在其上放置按钮即可.然后向他们添加操作并执行选择#2.您的代码无法正常工作,因为导航控制器没有父级,因为它没有显示为模态.

  • 您可以在模态视图控制器上调用dismissModalViewControllerAnimated:它将转发给父级.这也可以用于解除连续呈现的模式视图控制器的"堆栈"(如文档中所述). (3认同)