在 AppDelegate 中定义不是初始 VC 的特定 TabBarController - swift

Posted

技术标签:

【中文标题】在 AppDelegate 中定义不是初始 VC 的特定 TabBarController - swift【英文标题】:define specific TabBarController that isn´t the initial VC in AppDelegate - swift 【发布时间】:2016-04-04 13:11:33 【问题描述】:

在我的应用程序中有一个 TabBarController,它不是初始 VC。 当用户didEndCustomizingViewControllers 时,我想保存新的标签顺序。 我发现了一个最近被问到的问题:How to: Save order of tabs when customizing tabs in UITabBarController

我使用了 Rickard Elimää 的代码,它将 TabBarController 定义为 AppDelegate 中的初始控制器:

let tabBar: UITabBarController = self.window?.rootViewController as! UITabBarController

为了测试保存订单的代码是否有效,我将 TabBarController 设置为初始控制器并且它有效。 但是 UITabBarController 不应该是最初的 VC。 所以我的问题是如何定义那个 TabBarController,这样代码才能工作。

感谢您的帮助

【问题讨论】:

【参考方案1】:

我发现最好的方法是实现UIViewControllerTransitionDelegate。这将处理动画以及传递 rootViewController。这比仅仅传递 rootViewController 稍微复杂一点(就像我最初所做的那样),但从长远来看,值得花时间切换到它。

Apple Documentation.

www.raywenderlich.com(一个实现示例)

【讨论】:

以上是关于在 AppDelegate 中定义不是初始 VC 的特定 TabBarController - swift的主要内容,如果未能解决你的问题,请参考以下文章

iOS使用UIManagedDocument添加初始核心数据文件,而不是appdelegate

为啥我无法在 AppDelegate 中以编程方式更改我的初始视图控制器?

当 Healthkit 在后台唤醒我的应用程序时,AppDelegate 是不是会初始化?

当 Healthkit 在后台唤醒我的应用程序时,AppDelegate 是不是会初始化?

UINavigationController appDelegate UIViewController以编程方式

在 AppDelegate 中为其他 Viewcontroller 初始化 managedContect