gpt4 book ai didi

ios - 无法看到以编程方式快速添加到 UITabBar 的 Controller

转载 作者:行者123 更新时间:2023-11-28 10:55:45 25 4
gpt4 key购买 nike

我以编程方式从 Storyboard 中添加了 2 个 tabBar 项和一个 UITabBarItem - Menu。我成功地打开了与我使用 Storyboard创建的 tabBarItems 对应的 Controller 。但是,当我点击“菜单”时,会出现一个空白的黑屏,

@objc public class MainScreenTabsController : UITabBarController {
public override func viewDidLoad() {
super.viewDidLoad()
let tabController = MyViewController()
let tabBarItem = UITabBarItem(title: "Menu", image: UIImage(named: "more-options.png"), selectedImage: UIImage(named: "more-options"))
tabController.tabBarItem = tabBarItem
var array = self.viewControllers
array?.append(tabController)
self.viewControllers = array
}

public func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
return true;
}

public override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
}

我遵循了几个添加标签栏项目的教程,但它们都有我编写的代码。我错过了一些非常基本的东西吗? The three dots represent menu. The word menu is not included because in the real code I gave a blank string

编辑:

菜单 Controller 类

@objc public class MyViewController:UIViewController {

public override func viewDidLoad() {
super.viewDidLoad()
}

public override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
}

最佳答案

您的应用正在执行您的代码所指示的操作。您正在创建 MyViewController 的实例并将其添加到 UITabBarController 的 View Controller 数组中。

您的 MyViewController 类文件只是定义了一个空白的黑色 View 。

我猜你在 Storyboard 中创建了一个 ViewController,你想将它用作 MyViewController?如果是这样,您需要从 Storyboard 中对其进行实例化。

当您编辑 Storyboard时,将 MyViewController 类分配给您要使用的 VC,并且给它一个 Storyboard ID - 例如 MyVC。然后,将您的 viewDidLoad 函数编辑为:

public override func viewDidLoad() {
super.viewDidLoad()

// wrong way
// let tabController = MyViewController()

if let tabController = storyboard?.instantiateViewController(withIdentifier: "MyVC") as? MyViewController {

let tabBarItem = UITabBarItem(title: "Menu", image: UIImage(named: "more-options.png"), selectedImage: UIImage(named: "more-options"))
tabController.tabBarItem = tabBarItem
var array = self.viewControllers
array?.append(tabController)
self.viewControllers = array

}

}

关于ios - 无法看到以编程方式快速添加到 UITabBar 的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43783899/

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