有没有办法重置整个viewController层次结构?

时间:2016-09-05 08:35:31

标签: ios objective-c uiviewcontroller

我有一个viewController A,它将被视图B(显示)推送并被视图C(推送)推送到viewController层次结构中。

根 - > ...-( - 本 - ) - >乙 - ( - 推 - ) - >一种

根 - > ...-( - 推 - ) - &以及c - ( - 推 - ) - >一种

现在我在viewController A中有一个按钮需要更改 window.rootViewController ,但我无法在两种情况下使其功能正确。

当我使用[self.navigationController popToRootViewControllerAnimated:<#(BOOL)#>];时,它不会忽略显示的视图B.

同样[[[UIApplication sharedApplication] keyWindow].rootViewController dismissViewControllerAnimated:YES completion:<#^(void)completion#>];不是解决方案,因为当没有呈现的视图时,将不会调用完成块。

如果我将这两种方法结合起来,我认为只有当我将参数传递给层次结构中的每个viewController时,它才会起作用。

那么有一种清除viewController层次结构的粗略方法吗? 或者还有其他解决方案吗?

1 个答案:

答案 0 :(得分:0)

您可以在应用程序中的任何位置设置rootViewController,例如

  AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication]delegate];
 appDelegate.window.rootViewController = @"desired root VC"; // instatntiate your VC and set as root VC of your window

不要忘记在该课程中实施AppDelegate.h