首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Swift Xcode8.2中以编程方式将导航控制器嵌入到选项卡栏控制器中?

如何在Swift Xcode8.2中以编程方式将导航控制器嵌入到选项卡栏控制器中?
EN

Stack Overflow用户
提问于 2017-04-02 12:14:52
回答 2查看 1.2K关注 0票数 0

我一直在自学如何开发,我已经到了需要专家指导的地步。我使用MVC结构以编程方式创建了一些用户界面。我的问题是,如何将导航控制器嵌入到标签栏控制器中,以便标签栏控制器可以出现在每个屏幕上。我在main.storyboard中制作了标签栏控制器,并在名为Home Controller的视图控制器中引用了它。

代码语言:javascript
复制
    let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)

    let tabViewController = storyboard.instantiateViewController(withIdentifier: "TabBar")

    self.present(tabViewController, animated: true, completion: nil)

上面的代码是视图中的did加载函数。我想知道我是否需要在我的应用委托中更改根视图控制器?

代码语言:javascript
复制
    window = UIWindow(frame: UIScreen.main.bounds)
    window?.makeKeyAndVisible()

    let layout = UICollectionViewFlowLayout()      
    window?.rootViewController =  UINavigationController(rootViewController: HomeController(collectionViewLayout: layout))

这是在我完成的启动函数中。

EN

回答 2

Stack Overflow用户

发布于 2017-04-02 13:01:35

使用以下几行

代码语言:javascript
复制
var navigationController = UINavigationController(rootViewController: viewController));

tabBarController.viewControllers = [navigationController,firstViewControllersecondViewController, ]
票数 0
EN

Stack Overflow用户

发布于 2018-12-17 18:21:05

创建一个单独的UITabBarController类并在AppDelegate中对其进行初始化,如下所示:

代码语言:javascript
复制
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
      window = UIWindow(frame: UIScreen.main.bounds)

      window?.rootViewController = MyTabBarController()

      window?.makeKeyAndVisible()

      return true
}

和自定义的tabBarController

代码语言:javascript
复制
import UIKit

class MyTabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()


        self.tabBar.barTintColor = UIColor.black
        self.tabBar.tintColor = UIColor.white
        self.tabBar.unselectedItemTintColor = UIColor.white.withAlphaComponent(0.4)

        let firstViewController = FirstViewController()

        let firstViewTabBarItem = UITabBarItem(title: "First", image: UIImage(named: "calculator"), selectedImage: UIImage(named: "calculator"))

        firstViewController.tabBarItem = firstViewTabBarItem
        firstViewController.tabBarItem.tag = 0

        let historyViewController = HistoricDataViewController()

        historyViewController.tabBarItem = UITabBarItem(tabBarSystemItem: .history, tag: 1)

        let tabBarList = [calculateViewController, historyViewController]

        viewControllers = tabBarList.map{UINavigationController(rootViewController: $0)}

    }

}

希望这个例子能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43164575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档