gpt4 book ai didi

ios - 在基于 UITabBarController 的应用程序中启动时启动配置向导

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

我有一个基于 UITabBarController 的应用程序。我想在第一次启动应用程序时启动配置指南 - 一系列 View 。这当然与正常的选项卡导航无关,我希望配置 View 覆盖整个屏幕。

我有一个支持 UIApplicationDelegate 协议(protocol)的类,我尝试使用以下代码从 application:didFinishLaunchingWithOptions 方法启动我的配置 View :

UIViewController *vc = [[self.mainViewController storyboard] instantiateViewControllerWithIdentifier:@"StartupWelcomeViewController"];
[self.mainViewController presentModalViewController:vc animated:YES];

(mainViewController 是对 UITabBarController 的引用)

显然 application:didFinishLaunchingWithOptions 在标签栏 View 的 viewDidLoad 之前被调用。如果我将上面的代码移动到在 viewDidLoad 之后调用的函数,它就可以工作。

我在 UIApplicationDelegate 协议(protocol)或 UITabBarController 类中找不到在标签栏 View 中的 viewDidLoad 方法之后调用的方法。

启动配置指南的好地方在哪里?我该怎么做?

最佳答案

(老问题,但为了存档...)

如果你想让你的启动向导出现在选项卡 View Controller 的顶部,那么选项卡 View Controller 应该呈现它;您可以从 viewDidLoad 之类的地方执行此操作。如果您不喜欢在选项卡栏 Controller 中使用该代码,则将其放入例如应用程序委托(delegate)并让选项卡栏 Controller 调用它。

一个可以说更简洁的替代方案是在您的应用程序中没有自动出现的 View ,而是从应用程序委托(delegate)中编排所有内容 - 它检查配置向导是否已运行并选择显示该向导或选项卡栏 Controller &因此相关的用户界面。在任何一种情况下,实例化代码都会按照您的问题中显示的方式从 Storyboard 中检索相关的命名对象。启动向导会在使用您自己设计的非常简单的委托(delegate)协议(protocol)完成后回调应用程序委托(delegate),这会为您提供显示标签栏所需的提示,大概是通过调用相同的 show-tabs 方法无论标签栏是立即显示还是在配置完成后显示,都会被调用。

第二种方法确实意味着您的 Storyboard做的工作更少,而您的代码做的更多。根据我目前的经验,随着应用程序的成熟及其功能开始扩展到自动化 Storyboard行为提供的相对基本的流程选项之外,这似乎不可避免地会发生。

脚注

  • 您可以通过关闭 XCode Storyboard编辑器的属性检查器 (Command-Option-4) 中的 Is Initial View Controller 选项来防止 Storyboard在启动时显示任何 View 用于此目的。它将位于 Storyboard编辑器区域的最左侧,并有一个箭头指向它,从左到右“从无处淡入”。执行此操作后,您将收到构建警告,这很烦人;您可能决定添加一个虚拟的空白 View Controller 并将其设置为初始 View ,纯粹是为了避免警告。

关于ios - 在基于 UITabBarController 的应用程序中启动时启动配置向导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10961520/

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