全局展开序列
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]
我有一个可以在应用程序外部触发的重置通知,用户正在做的任何事情都将退出并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]