【问题标题】:dismissModalViewControllerAnimated not workingdismissModalViewControllerAnimated 不起作用
【发布时间】:2011-06-20 09:01:52
【问题描述】:

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

我的 MVC 中的 NavigationController 有两个按钮,一个 Cancel 和一个 Done。当按下其中任何一个时,MVC 应该被关闭。 这些按钮的 IBAction 位于 UINavigationController 的视图 (AddClockViewController) 中,但无论何时按下它们,MVC 都不会消失。 如果我将动作放入 MVC,它就会消失。 如果我将函数放在我的 MVC 中并使用 [self.parentViewController myFunction] 从我的 viewController 调用它,它不会消失。

我怎样才能让它从我的视野中消失?

我想我的解释很混乱,但我希望你能理解。
我的 IB 的观点:

最好的问候,
保罗·皮伦

编辑 我已经用[self dismissModalViewControllerAnimated:YES];[self.parentViewController dismissModalViewControllerAnimated:YES];[self.navigationController dismissModalViewControllerAnimated:YES];[self.parentViewController.navigationController dismissModalViewControllerAnimated:YES]; 尝试了这个,并且如前所述,在 parentView 中使用了一个函数来解除它。没有任何效果。

【问题讨论】:

    标签: iphone model-view-controller ios uinavigationcontroller


    【解决方案1】:

    当某个视图控制器呈现另一个视图控制器时,它就成为了父视图控制器。所以如果你想关闭你的模态视图控制器,那么你必须选择:

    1. 从父视图控制器调用

      [selfdismissModalViewControllerAnimated: YES];

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

      [self.parentViewControllerdismissModalViewControllerAnimated: YES];

    您实际上不需要导航控制器(因为您不需要推送/弹出任何视图控制器)。只需将 UINavigationBar 添加到您的 MVC 并在其上放置按钮即可。然后向它们添加操作并执行选项 #2。 您的代码不起作用,因为导航控制器没有父级,因为它没有显示为模式。

    【讨论】:

    • 嗨,我试过了……但它不起作用。此外,第二个 NavigationController 的原因是因为加载的视图(一个 UIViewController)保留了一个 UITableView,其中一个单元格会推送到下一个视图。这不适用于“just”和 NavigationBar。
    • 您可以在模态视图控制器上调用dismissModalViewControllerAnimated: 并将其转发给父级。这也可用于关闭连续呈现的模态视图控制器的“堆栈”(如文档中所述)。
    【解决方案2】:

    一种情况是dismiss{Modal}ViewControllerAnimated 是在显示的viewController 的viewDidAppear 被调用之前被调用的。在这种情况下,呈现的是动画 == YES。在呈现的内容完全出现之前,它就被驳回了。

    要修复它,您需要在关闭的时间点检查,检查是否调用了 viewDidAppear,如果没有,则推迟关闭 - viewDidAppear。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-07
      相关资源
      最近更新 更多