6
我在iOS中使用故事板。第一个屏幕是登录屏幕。当用户注销或注销时,他可能在深层次的屏幕上。在退出时返回到初始故事板ViewController
例如:登录视图控制器=>模式视图控制器=>标签栏控制器=>导航控制器=>视图控制器=>视图控制器。我想从最顶层的视图控制器回到最底层的视图控制器。
编辑:这里是视图层次结构的示意图:
谢谢!
我在iOS中使用故事板。第一个屏幕是登录屏幕。当用户注销或注销时,他可能在深层次的屏幕上。在退出时返回到初始故事板ViewController
例如:登录视图控制器=>模式视图控制器=>标签栏控制器=>导航控制器=>视图控制器=>视图控制器。我想从最顶层的视图控制器回到最底层的视图控制器。
编辑:这里是视图层次结构的示意图:
谢谢!
这应该假定一切都推到导航堆栈:
[self.navigationController popToRootViewControllerAnimated:YES];
我写了UIViewControllers一个类别,这似乎是工作:
- (void) popToInitialViewController
{
UIViewController *vc;
if (self.navigationController != nil) {
vc = self.navigationController;
[self.navigationController popToRootViewControllerAnimated:NO];
[vc popToInitialViewController];
}
else if (self.tabBarController != nil) {
vc = self.tabBarController;
[vc popToInitialViewController];
}
else if (self.presentingViewController != nil) {
vc = self;
while (vc.presentingViewController != nil)
vc = vc.presentingViewController;
[vc dismissModalViewControllerAnimated:NO];
[vc popToInitialViewController];
}
}
评论被感激:)
用图表更新以说明为什么没有奏效。 –
啊我看,很好的图。您可能还必须使用NSNotificationCenter在注销时发布通知。您的第一个模式视图控制器可以监听通知,并在收到通知时自行解除。 –