Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 设置导航项标题视图_Ios_Swift_Uinavigationcontroller - Fatal编程技术网

Ios 设置导航项标题视图

Ios 设置导航项标题视图,ios,swift,uinavigationcontroller,Ios,Swift,Uinavigationcontroller,我正在使用一个表栏控制器和一个导航栏控制器,设置导航控制器的titleView属性时遇到问题。我认为这相当直截了当 设置标题视图的代码 let titleImageView = UIImageView(image: #imageLiteral(resourceName: "Logo 2")) titleImageView.frame = CGRect(x: 0, y: 0, width: 100, height: 34) titleImageView.contentMode

我正在使用一个表栏控制器和一个导航栏控制器,设置导航控制器的titleView属性时遇到问题。我认为这相当直截了当

设置标题视图的代码

   let titleImageView = UIImageView(image: #imageLiteral(resourceName: "Logo 2"))
    titleImageView.frame = CGRect(x: 0, y: 0, width: 100, height: 34)
    titleImageView.contentMode = .scaleAspectFit

    navController.navigationItem.titleView = titleImageView
    navController.navigationBar.barTintColor = .white//UIColor.rgb(red: 38, green: 58, blue: 147)
全控器

class MainTabBarController: UITabBarController {
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .blue

        let homeController = HomeController()
        let navController = UINavigationController(rootViewController: homeController)

        navController.tabBarItem.image = #imageLiteral(resourceName: "invoice-filled-50")
        navController.tabBarItem.selectedImage = #imageLiteral(resourceName: "invoice-filled-50")
        navController.tabBarItem.title = "Home"

        let redVC = UIViewController()
        redVC.view.backgroundColor = .red
        redVC.tabBarItem.image = #imageLiteral(resourceName: "money-box-50")
        redVC.tabBarItem.selectedImage = #imageLiteral(resourceName: "money-box-filled-50")
        redVC.tabBarItem.title = "Save"

        let greenVC = UIViewController()
        greenVC.view.backgroundColor = .green
        greenVC.tabBarItem.image = #imageLiteral(resourceName: "stocks-50")
        greenVC.tabBarItem.selectedImage = #imageLiteral(resourceName: "stocks-filled-50")
        greenVC.tabBarItem.title = "Invest"

        let orangeVC = UIViewController()
        orangeVC.view.backgroundColor = .orange
        orangeVC.tabBarItem.image = #imageLiteral(resourceName: "notification-50")
        orangeVC.tabBarItem.selectedImage = #imageLiteral(resourceName: "notification-filled-50")
        orangeVC.tabBarItem.title = "Alerts"


        let titleImageView = UIImageView(image: #imageLiteral(resourceName: "Logo 2"))
        titleImageView.frame = CGRect(x: 0, y: 0, width: 100, height: 34)
        titleImageView.contentMode = .scaleAspectFit

        navController.navigationItem.titleView = titleImageView
        navController.navigationBar.barTintColor = .white//UIColor.rgb(red: 38, green: 58, blue: 147)

        tabBar.tintColor = UIColor.rgb(red: 38, green: 58, blue: 147)
        viewControllers = [navController,redVC, greenVC, orangeVC]
    }
}
您必须指定

navigationBar.topItem?.titleView = titleImageView
不是,


不,这是不对的。您应该设置特定视图控制器的导航项的标题视图。然后,当视图控制器是俯视图控制器时,导航控制器将显示它。注意,所以在RedVC中,您将执行
RedVC.navigationItem.titleView=titleImageView
navController.navigationItem.titleView = titleImageView