gpt4 book ai didi

ios - 用于应用程序首次使用教程的最佳设计/模式?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:40:17 25 4
gpt4 key购买 nike

背景:

我有一个包含 5 个标签页的应用程序。用户第一次导航到每个选项卡时,我想展示一个一次性“教程”。我打算通过创建一个“TutorialViewController”来实现这一点,它将处理显示这些“教程” View 并将具有用于下一步/返回等的按钮......

问题:我不确定用于实现是否显示这些屏幕并实例化“TutorialViewController”以显示它们的逻辑的最佳模式。目标是在必要时使用一行代码(一个方法调用)来显示教程。我试图避免在 5 个 View Controller 中重复代码。问题是在哪里/如何实现这个单一的方法。作为 TutorialViewController 的类方法?作为全局 C 函数?

我考虑过的事情:

1) 在 TutorialViewController 上实现一个名为“displayTutorialIfNecessary”的类方法。在这种情况下,每个有教程的 View Controller 都会从它们的“viewDidAppear”方法中调用此类方法。此类方法将检查教程是否已经显示,如果没有,它将实例化一个 TutorialViewController 对象来处理以显示它。在这个选项中,我想我必须从每个调用 View Controller 传递“self”,类方法将使用它来显示 TutorialViewController。

2) 在 TutorialViewController 上实现一个名为“tutorialShouldBeDisplayedForScreen:”的类方法。在此选项中,每个调用 View Controller 都将调用此方法,如果它返回 true,则每个 vc 将实例化并呈现将处理显示教程的“TutorialViewController”。

我确信存在适合这种情况的“最佳实践”或模式,但我不确定最佳实现是什么。预先感谢您的建议。

总结一下:与其在每个 View Controller 中有这样的东西:

 if ([TutorialViewController shouldDisplayTutorialForScreen:<someEnum>])
{
TutorialViewController *myTutorialVC = [[TutorialViewController alloc] init];
[self displayModalViewController: myTutorialVC];
}

我想要更多这样的东西:

 [FirstUseViewController displayTutorialIfNecessaryForScreen: <someEnum> forParentViewController: self];

最佳答案

将教程显示的状态存储到 NSUserDefaults 中,并使用工厂方法设计模式 让您需要的每个 UIViewController 创建并返回教程 UIViewController 喜欢:

- (UIViewController *)tutorialVC {
return [[MYHomeScreenTutorialVC alloc] init];
}

关于ios - 用于应用程序首次使用教程的最佳设计/模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19006910/

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