【问题标题】:How to embed a view in a navigation controller programmatically?如何以编程方式在导航控制器中嵌入视图?
【发布时间】:2020-03-06 17:10:33
【问题描述】:

我在 UITabBarController 中有 3 个视图控制器。只有一个视图控制器我想把它放在导航控制器中。这样做的正确方法是什么,以便只有一个视图控制器具有导航控制器?我希望 aController 在导航控制器中。

import UIKit

class TabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let mController = MViewController()
        mpController.tabBarItem = UITabBarItem(title: "view1", image: UIImage(named: "viewoneimage"), tag: 0)



        let inputController = InputViewController()
        inputController.tabBarItem = UITabBarItem(title: "Input", image: UIImage(named: "plus"), tag: 1)

        let aController = ATableViewController()
        aController.tabBarItem = UITabBarItem(title: "custom", image: UIImage(named: "person.fill"), tag: 2)
        let navController = UINavigationController()
//        aController.navigationController = navController


        viewControllers = [mController, inputController, aController, navController]
        // Do any additional setup after loading the view.
    }




}

【问题讨论】:

  • 您是否尝试过将UINavigationController 添加为标签栏控制器的viewControllers 数组之一?
  • 两件事。首先,您不要UINavigationController 中嵌入视图,而是嵌入视图控制器。其次,如果您希望在视图中嵌入UINavigationController,请尝试使其成为该视图的 VC 的子 VC。
  • @dfd 我的意思是视图控制器是我的错。
  • @Rudedog 我做了,但它只显示一个空白的视图控制器。如何将其添加到现有的?

标签: ios swift uikit


【解决方案1】:

您必须将您的UIViewController 嵌入到Navigation Controllers 中,并使用您的Navigation Controllers 初始化您的标签菜单。

此外,对于每个标签,您将拥有不同的Navigation Controller

你的代码应该是这样的。

import UIKit

class TabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let mController = MViewController()
        mpController.tabBarItem = UITabBarItem(title: "view1", image: UIImage(named: "viewoneimage"), tag: 0)
        let inputController = InputViewController()
        inputController.tabBarItem = UITabBarItem(title: "Input", image: UIImage(named: "plus"), tag: 1)
        let aController = ATableViewController()
        aController.tabBarItem = UITabBarItem(title: "custom", image: UIImage(named: "person.fill"), tag: 2)
        let navMController = UINavigationController(rootViewController: mpController)
        let navInputController = UINavigationController(rootViewController: inputController)
        let navaController = UINavigationController(rootViewController: aController)
        viewControllers = [navMController, navInputController, navaController]
    }
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-28
  • 2023-03-20
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多