如何在Swift中将导航控制器与xib结合使用

时间:2019-06-20 15:12:20

标签: swift model-view-controller uinavigationcontroller uitabbarcontroller xib

我有一个很令我着迷的查询,碰巧我正在学习Swift,在我看来,幻想Xcode提供的工具使这项工作变得容易得多,但至少基于我在Android项目中的经验建议使用 MVC 来维护项目的顺序,他们为我推荐使用 xib文件的尝试同样迅速,它也可以用于组。直到一切都很棒,但是当我尝试实现它时,我发现它太复杂了,我更喜欢使用 storyboards ,但是库和其他文件的使用使得加载故事板文件时我也延迟了这是因为它已加载了足够的 ViewController 。除此之外,在情节提要中使用 NavigationController 很容易,这使导航变得更加容易。我的问题是如何使用xib文件执行此操作?片刻之后,我尝试这样做,但是ViewController垂直加载并且没有导航栏,我也不知道如何开发它。

这种方式通过代码加载ViewController。

let Storyboard = UIStoryboard(name: "Main", bundle: nil)
        let menuVC = Storyboard.instantiateViewController(withIdentifier: "MenuSelectedViewController") as! MenuSelectedViewController
        self.navigationController?.pushViewController(menuVC, animated: true)

并通过带有segue的界面构建器

enter image description here

那么如何使用xib文件和我的 TabBarController 开发此导航栏

1 个答案:

答案 0 :(得分:0)

您只需要UINavigationController(rootViewController: yourViewController)

这里是使用此示例

let yourViewController = DiscoverViewController(nibName: "yourViewController", bundle: nil)
yourViewController.tabBarItem.image = UIImage(named: "imageName")
let navigationController = UINavigationController(rootViewController: yourViewController)

// TabBarController
let tabbarController = UITabBarController()
tabbarController.tabBar.tintColor = ThemeColor
tabbarController.tabBar.barTintColor = .white
tabbarController.viewControllers = [navigationController] //add your other  controllers here as needed

// Make it root or what ever you want here
self.window?.rootViewController = tabbarController
self.window?.makeKeyAndVisible()