我有一个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层次结构的粗略方法吗? 或者还有其他解决方案吗?
答案 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
。