gpt4 book ai didi

ios - Swift:重用代码将类传递给参数

转载 作者:行者123 更新时间:2023-11-28 15:33:39 25 4
gpt4 key购买 nike

我想重用代码,所以我创建了 redirectToTabBarControllerChild

func redirectToTabBarControllerChild(storyboardName: String, tabBarIndex: Int, segueID: String, viewController: UITableViewController) {
let storyboardMain = UIStoryboard(name: storyboardName, bundle: nil)
let tabBarController = storyboardMain.instantiateViewController(withIdentifier: "TabBarController") as! UITabBarController
window?.rootViewController = tabBarController
tabBarController.selectedIndex = tabBarIndex
let navigationViewContrller = tabBarController.childViewControllers[tabBarIndex] as! UINavigationController
let currentViewContrller = navigationViewContrller.childViewControllers.first as! viewController
currentViewContrller.performSegue(withIdentifier: segueID, sender: nil)
window?.makeKeyAndVisible()
}

例如,我想传递给 ProfileViewController 的最后一个参数。但是我在这一行中有一个错误: let currentViewContrller = navigationViewContrller.childViewControllers.first as! View Controller

使用未声明类型的viewController

有人知道我该怎么做吗?

最佳答案

navigationController?.childViewControllersUIViewControllers数组。您将获得 first 属性,这意味着您需要将其转换为 as! UIViewController 这将强制转换它并且它不再是可选的。

你想要做的是将它转换为 UITableViewController,所以这样做:

if let vc = navigationViewContrller.childViewControllers.first as? UITableViewController {
// Will succeed if the first is of type UITableViewController
// Use vc in here
}

关于ios - Swift:重用代码将类传递给参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44506855/

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