• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-12 14:52:21 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

背景:

我有一个有 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];



Best Answer-推荐答案


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

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

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

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap