UINavigationController、UITabBarController、UITableViewController
UINavigationController, UITabBarController, UITableViewController
我目前在应用程序中设置了一个 UINavigationController 作为初始视图,它有一个 UITableViewController 作为它的根视图控制器。到目前为止,该应用程序运行良好。我在 AppDelegate.swift 中有以下代码:
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let favLibrary = FavLibrary()
let navController = window!.rootViewController as! UINavigationController
let favController = navController.topViewController as! FLViewController
favController.favLibrary = favLibrary
return true
}
我正在尝试实现一个 UITabBarController,以便我可以使用选项卡栏在同一级别(收藏夹和库)的两个 UITableViewController 之间切换。
我将每个 VC 嵌入到它自己的导航控制器中,然后我将这两个导航控制器嵌入到一个标签栏控制器中。
应用程序 运行 崩溃并出现以下错误:
无法将类型 'UITabBarController' (0x115f9e430) 的值转换为 'UINavigationController' (0x115f971d0)。
2018-09-27 15:49:43.811377-0700 appName [3675:954448] 无法将类型 'UITabBarController' (0x115f9e430) 的值转换为 'UINavigationController' (0x115f971d0).
如何更正 AppDelegate 中的代码以保留新排列的选项卡栏和导航控制器的功能?
如果我对你的问题理解正确,我想你应该首先访问 tabBarController,然后检索它包含的视图控制器,它应该是一个导航控制器列表。然后你可以在选定的导航控制器中获取你的视图控制器:
let tabBar = window!.rootViewController as! UITabBarController
let targetTabNav = tabBar.viewControllers![1] as! UINavigationController // change index to what you want
let targetVc = targetTabNav.viewControllers.first!
// Do what you want with the target Vc ...
我目前在应用程序中设置了一个 UINavigationController 作为初始视图,它有一个 UITableViewController 作为它的根视图控制器。到目前为止,该应用程序运行良好。我在 AppDelegate.swift 中有以下代码:
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let favLibrary = FavLibrary()
let navController = window!.rootViewController as! UINavigationController
let favController = navController.topViewController as! FLViewController
favController.favLibrary = favLibrary
return true
}
我正在尝试实现一个 UITabBarController,以便我可以使用选项卡栏在同一级别(收藏夹和库)的两个 UITableViewController 之间切换。
我将每个 VC 嵌入到它自己的导航控制器中,然后我将这两个导航控制器嵌入到一个标签栏控制器中。
应用程序 运行 崩溃并出现以下错误:
无法将类型 'UITabBarController' (0x115f9e430) 的值转换为 'UINavigationController' (0x115f971d0)。 2018-09-27 15:49:43.811377-0700 appName [3675:954448] 无法将类型 'UITabBarController' (0x115f9e430) 的值转换为 'UINavigationController' (0x115f971d0).
如何更正 AppDelegate 中的代码以保留新排列的选项卡栏和导航控制器的功能?
如果我对你的问题理解正确,我想你应该首先访问 tabBarController,然后检索它包含的视图控制器,它应该是一个导航控制器列表。然后你可以在选定的导航控制器中获取你的视图控制器:
let tabBar = window!.rootViewController as! UITabBarController
let targetTabNav = tabBar.viewControllers![1] as! UINavigationController // change index to what you want
let targetVc = targetTabNav.viewControllers.first!
// Do what you want with the target Vc ...