0

我有一个打开模态视图控制器(MVC)的根视图控制器(RVC)。然后,我通过推送在 MVC 中导航到更多 VC。从这些 VC 回到 RVC 的最佳实践是什么?

通常,我有一个来自 Modal VC 的代表,它调用 RVC,然后关闭模态,但是如果你离开它,但我不确定如果你离开它我会怎么做。

4

2 回答 2

1

不要忘记委托不必是模型导航堆栈中 UIViewController 的属性。考虑创建一个将 rootviewcontroller 的引用作为委托的单例类。这样,您的应用程序中的任何类都可以访问它,并且您不必不断地将它传递给需要它的每个 UIViewController。

于 2012-08-10T14:43:42.767 回答
1

没有看到任何代码有点难以帮助,但让我在这里在黑暗中拍摄。

我将假设模态视图中显示的第一个控制器提供协议/委托来调用解除操作。

如果您在模态视图中使用 UINavigationController 将其他视图控制器推送到堆栈上,您总是可以像这样获得第一个控制器

UIViewController * yourFirstController = [[[self navigationController] viewControllers] objectAtIndex:0];

// and then use your delegate to call your dismiss method
// you will need to typecast your controller based on your subclass otherwise will get warning here
if ([[yourFirstController delegate] respondsToSelector:@selector(yourCloseProtocolMethod)]) {
    [[yourFirstController delegate] yourCloseProtocolMethod];
}
于 2012-08-09T15:12:05.207 回答