gpt4 book ai didi

ios - 在没有层次结构的两个 View Controller 之间切换

转载 作者:行者123 更新时间:2023-11-29 03:00:32 24 4
gpt4 key购买 nike

我有一些 ViewController,它们都有按钮,这些按钮应该与其他一些按钮相连接。永远不会有后退按钮,而是所有内容都通过一堆循环连接起来,因此永远不会有死胡同。因此,我想完全从一个 View Controller 过渡到另一个 View Controller ,并完全删除旧的 View Controller 。 View Controller 之间没有层次结构,也没有父/子关系。我应该如何处理这种情况?

最佳答案

实例化你想去的 View Controller ,然后将它设置为窗口的 Root View Controller 。

NextViewController *next = [self.storyboard instantiateViewControllerWithIdentifier:@"Next"]; // or other instantiation method depending on how you create your controller
self.view.window.rootViewController = next;

如果您想在 Storyboard中显示从 Controller 到 Controller 的流程,您可以使用自定义 segues 来实现(那时您根本不需要任何代码)。自定义 segue 的执行方法如下所示,

@implementation RootVCReplaceSegue

-(void)perform {
UIViewController *source = (UIViewController *)self.sourceViewController;
source.view.window.rootViewController = self.destinationViewController;
}

如果你想要淡入淡出动画,你可以添加源 View Controller 的快照作为目标 View Controller View 的 subview ,然后淡出,

-(void)perform {
UIViewController *source = (UIViewController *)self.sourceViewController;
UIView *sourceView = [source.view snapshotViewAfterScreenUpdates:YES];
[[self.destinationViewController view] addSubview:sourceView];
source.view.window.rootViewController = self.destinationViewController;
[UIView animateWithDuration:.5 animations:^{
sourceView.alpha = 0;
} completion:^(BOOL finished) {
[sourceView removeFromSuperview];
}];
}

关于ios - 在没有层次结构的两个 View Controller 之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23356438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com