swift – UISplitview:从appDelegate访问UITabBarController
发布时间:2020-12-14 04:41:29 所属栏目:百科 来源:网络整理
导读:我需要访问UITabBarController,以及来自appDelegate的第二个子视图. 这是我在applicationDidEnterBackground中尝试过的: let splitViewController = self.window!.rootViewController as! UISplitViewControllerlet leftNavController = splitViewControlle
我需要访问UITabBarController,以及来自appDelegate的第二个子视图.
这是我在applicationDidEnterBackground中尝试过的: let splitViewController = self.window!.rootViewController as! UISplitViewController let leftNavController = splitViewController.viewControllers.first as! UINavigationController let tabController = leftNavController.tabBarController! as UITabBarController let controllers : Array = tabController.viewControllers! print("viewcontrollers (controllers)") 该应用程序崩溃,抱怨tabController是零.如果我从storyboard中删除UINavigation控制器,则可以使用以下命令轻松访问UITabBarController: let tabController = splitViewController.viewControllers.first as! UITabBarController 访问UITabBarController的子控制器的正确方法是什么,其中UISplitView是根? 解决方法
最后我找到了解决方案.我必须使用导航控制器的“childViewControllers”,如下所示:
let splitViewController = self.window!.rootViewController as! UISplitViewController let leftNavController = splitViewController.viewControllers.first as! UINavigationController let tabController = leftNavController.childViewControllers.first as! UITabBarController let viewControllers : Array = tabController.viewControllers! print("viewControllers (viewControllers)") 现在我可以轻松访问任何viewControllers并从appDelegate运行他们的方法:-) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |