gpt4 book ai didi

ios - Storyboard - 如何在没有动画和显示屏幕的情况下自动执行转场

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:22:03 24 4
gpt4 key购买 nike

我有一个应用程序,用户必须在初始屏幕上输入一些信息,例如登录凭据。所有导航都是使用 Storyboard和 segues 完成的,它会自动将导航栏设置在顶部。

我有两个 Storyboard共享相同的 Controller ,所以我对 segues 使用相同的名称(ipad 和 iphone 版本)。

所以当用户回到应用程序时,我读取了核心数据并知道他已经执行了初始步骤,所以我想“跳过”那些屏幕。

问题:我只能在 View 可见后执行 segues,否则导航会搞砸。但是这样做时,用户会短暂地看到屏幕并看到动画将屏幕“推”开。我想在导航栏上保留导航历史记录,这就是为什么我想使用 segues 和所有与之相关的逻辑。

所有解决方案都指向以编程方式创建 View 并将它们放在堆栈上,但我想利用 Storyboard。

最佳答案

这是一种方法;

在您的 StoryBoard 中,为第二个 View Controller 分配一个标识符(这是在身份检查器上完成的,设置 Storyboard ID 字段)。在下面的代码中,我将我的命名为 secondVC;

然后在你的第一个 Controller (你想跳过但又回来的那个)的 viewDidLoad 中做这样的事情;

- (void)viewDidLoad{
[super viewDidLoad];
/// validate viewController one being displayed
if(dontDisplayFirstController){

UIStoryboard *storyBoard = self.storyboard;
UIViewController *targetViewController = [storyBoard instantiateViewControllerWithIdentifier:@"secondVC"];
UINavigationController *navController = self.navigationController;


if (navController) {
[navController pushViewController:targetViewController animated:NO];
}
}
}

这将有效地推送到第二个 viewController,同时仍将 viewController 保留在导航树中。

关于ios - Storyboard - 如何在没有动画和显示屏幕的情况下自动执行转场,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23524448/

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