gpt4 book ai didi

ios - 自定义 UIStoryboardSegue 中的 View 之间不显示过渡

转载 作者:行者123 更新时间:2023-11-29 04:08:14 27 4
gpt4 key购买 nike

我编写了一个自定义的 UIStoryboardSegue。

我的 CustomSegue.m 文件中的唯一代码是:

-(void) perform {
UIViewController* sourceViewController = (UIViewController *) self.sourceViewController;
UIViewController* destinationViewController = (UIViewController *) self.destinationViewController;

UIWindow* window = UIApplication.sharedApplication.keyWindow;
window.rootViewController = destinationViewController;
window.rootViewController = sourceViewController;

[UIView transitionWithView: sourceViewController.view.window
duration: 0.5
options: UIViewAnimationOptionTransitionFlipFromLeft
animations: ^{window.rootViewController = destinationViewController;}
completion: ^(BOOL finished) {}
];
}

如果我设置了一个 Storyboard,它只有两个 UIViewController,第一个上有一个按钮链接到第二个,那么一切都会按计划进行:有一个从左侧翻转的过渡。

但是:如果我在第一个 UIViewController 之前放置一个 UINavigationController,segue 现在会调出第二个 View Controller ,而无需从左翻转。

这是怎么回事?为什么过渡不能与导航 Controller 一起使用?

感谢您的帮助!

(如果您感兴趣,我使用自定义转场的原因是这样我可以在一些介绍页面之后显示主从 View 。我的灵感来自 this Stackoverflow answer 。)

最佳答案

我从未解决过这个问题,但找到了一个简单的解决方法。我从前面移除了导航 Controller ,但在 Segue 之后放置了一个。然后,我在源屏幕的顶部放置了一个简单的导航栏。 Segue 还触发了向目标 View Controller 添加后退按钮。我的自定义转场因此变成了“伪推送”转场。

关于ios - 自定义 UIStoryboardSegue 中的 View 之间不显示过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14849405/

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