全局展开序列

Global Unwind Segue

我有一个可以在应用程序外部触发的重置通知,用户正在做的任何事情都将退出并return到主屏幕,因为数据已经无效。目前,我不得不在每个视图控制器中放置 unwind segues,但我只想在发生此通知时以编程方式调用全局 performSegueWithIdentifier。有相当多的视图控制器,到处都复制这段代码并不是很好,随着新的视图控制器被添加到项目中,这将成为一个维护问题。有没有一种直接的方法可以做到这一点?

您可以快速转到特定的视图控制器而无需转场。如果您有一个故事板,请在您的视图控制器中调用它。

self.view.window.rootViewController = [self.storyboard instantiateInitialViewController];

或者通过故事板 ID 转到非初始视图控制器

self.view.window.rootViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"StoryboardID"];

如果您的应用中有多个故事板,您应该首先获取特定的故事板。

UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
self.view.window.rootViewController = [storyboard instantiateInitialViewController];

正如评论所说,如果您有导航控制器容器,只需切换到根视图控制器即可。

[self.navigationController popToRootViewControllerAnimated:YES]