ios - 对于第一次仅进入应用程序,在 swift 中使用 UIPageViewController 做教程页面的首选方法是什么

标签 ios swift

本人对IOS界面设计比较陌生,目前面临这样的问题:

我有一个应用程序想要在 导航 Controller 之前有一个教程 (UIPageViewController),这将是应用程序将进入的 Storyboard上的主 Controller 。

现在,我想要实现的是让应用程序在第一次 应用程序运行时提前运行我的教程页面,然后进入NavigationController。如果不是第一次,用户将直接转到 NavigationController。

经过一些研究,我发现至少有两种方法可以做到这一点:

  1. 完全在代码上对 UIPageViewController 进行编程,然后在 Appdelegate 中使用 if-else 循环来执行此操作。
  2. 将 UIPageViewController 插入 Storyboard并执行。

到目前为止,这是我能找到的两种方法。其次,我找不到处理“完全跳过教程页面”的最佳方法。或者可能有更好的方法来做到这一点。我希望该应用程序更加优化,并且想知道对于 IOS 专业人员的选择,通常的做法是什么。

谢谢!

(p.s. 如果问题重复或不清楚,请给我留言。再次感谢!如果可以显示一些 github demo 的链接,可能会有奖励。)

最佳答案

我通常做这种事情的方式如下:

  1. 将教程内容放在单独的 Storyboard中。
  2. 在主 Storyboard的初始 View Controller 中,勾选 NSUserDefaults 中的专用变量,用于查看用户是否曾经运行过 之前的应用程序。
  3. 如果没有,则以编程方式加载初始 View Controller 教程 Storyboard并展示它。

这样一来,主 Storyboard就不会加载一堆只使用一次的 View Controller ,而且为转换编写的代码也很少。

-- 编辑--

下面是这个问题答案的 Swift 版本:How can I load storyboard programmatically from class?

let storyboard = UIStoryboard(name: "Tutorial", bundle: nil)
let viewController = storyboard.instantiateInitialViewController()
presentViewController(viewController, animated: true, completion: nil)

关于ios - 对于第一次仅进入应用程序,在 swift 中使用 UIPageViewController 做教程页面的首选方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32918232/

相关文章:

ios - 使用 jenkins 和 faSTLane 构建 ios .ipa(主机 ubuntu)

ios - 如何在 Swift 上将照片库显示为 UICollectionView 或 Assets 网格

ios - 函数返回后调用转义闭包是什么意思?

ios - Apple - 应用内购买 : How to make sure the user is authorised to use Free trial subscription only one time?

ios - 使用 swift 并在后台获取数据进行 MVC 的正确方法是什么

objective-c - 在 Obj-C 中使用 Swift 协议(protocol)的实现

java - 在 Firebase URL 中使用 Firebase 服务器时间戳

将 Swift 闭包转换为 CFunctionPointer?

ios - 如何停止 View Controller 以获取 tableView 单元格 subview 的触摸?

ios - UITableview 附件类型在滚动时消失