【问题标题】:How can I embed NavigationController to Viewcontroller in xib如何将 NavigationController 嵌入到 xib 中的 Viewcontroller
【发布时间】:2020-11-14 00:09:09
【问题描述】:

我有一个 viewcontroller,比如说A,它是用xib 创建的,我想给它添加 navigationController。

查看层次结构:

UITabbarController -> NavigationController -> B Viewcontroller (A added tabbarcontroller in here when a button in B click)

我在B Viewcontroller 的按钮操作中将A 视图添加到Tabbar 就像

tabBarController?.view.addSubview(A.view)

有了这个结果,View A 出现在我想要的标签栏上。

在 A viewController 中有一个 Tableview 有一些数据。当我单击一行时,我想用 self.navigationController.push(..) 推送另一个 Viewcontroller 但我不能推送任何东西,因为 UITabbarController 没有 navigationController 所以我想将 NavigationController 添加到 A viewController 。我搜索了很多东西,但找不到任何可能的解决方案。

我怎样才能做到这一点?

【问题讨论】:

    标签: ios swift uinavigationcontroller uitabbarcontroller hierarchy


    【解决方案1】:

    设置UINavigationControllerrootViewController 并将其添加到视图层次结构中。

    let navigationController = UINavigationController(rootViewController: aViewController)
    

    另外,要将新的视图控制器附加到 UITabBarControllerviewControllers 使用:

    tabBarController?.viewControllers?.append(navigationController)
    

    或者:

    tabBarController?.viewControllers?.insert(navigationController, at: 0)
    

    【讨论】:

    • insert 或 append 添加新的 tabbar 项目到 tabbarcontroller 所以我使用addChild 到 tabbar。问题当 A 视图关闭时如何删除此导航?我想每次当 B 中的按钮点击@frankenstein
    【解决方案2】:

    基于您的视图层次结构

    UITabbarController -> NavigationController -> B Viewcontroller
    

    你必须附加 ViewController 而不是 ViewController 的视图

        func addMoreViewController() {
            let aViewController = UINavigationController(rootViewController: aViewController)
            
            self.viewControllers.append(aViewController)
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      • 2013-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多