У меня есть этот код, где я хотел бы иметь панель вкладок на картах Google. Я хотел бы загрузить карты Google на панель вкладок по умолчанию, когда вызывается метод let firstVc = UIViewController(
), можно ли поместить код карт Googleв другом swift-файле и вызовите этот swift-файл в методе func createTabBarController ().
Я создал панель вкладок программно
//
// MainVC.swift
// ZODV1
//
// Created by sskadit on 21/11/18.
// Copyright © 2018 sskadit. All rights reserved.
//
import Foundation
import GoogleMaps
//import GooglePlaces
import UIKit
class MainVC: UIViewController {
let tabBarCnt = UITabBarController()
override func viewDidLoad() {
super.viewDidLoad()
// Create a GMSCameraPosition that tells the map to display the
// coordinate -33.86,151.20 at zoom level 6.
let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 4.0)
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
view = mapView
// Creates a marker in the center of the map.
let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
marker.title = "Sydney"
marker.snippet = "Australia"
marker.map = mapView
mapView.layoutMargins = UIEdgeInsets(top: 0, left: 100, bottom: 10000000, right: 60)
let image = UIImage(named: "nearby_deals_icon") as UIImage?
let btn: UIButton = UIButton(type: UIButton.ButtonType.roundedRect)
btn.frame = CGRect(x: 120, y: 690, width: 200, height: 70)
btn.backgroundColor = UIColor.red
btn.setTitle("Find Near By Deals", for: UIControl.State.normal)
btn.setBackgroundImage(image, for: UIControl.State.normal)
btn.imageEdgeInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
btn.setTitleColor(UIColor.white, for:UIControl.State.normal)
// self.view.addSubview(btn)
// createTabBarController()
// print(check)
createTabBarController()
// func createTabBarController(tabBar: UITabBar, didSelectItem item: UITabBarItem) {
// print("Selected Index :\(self.selectedIndex)");
// }
//
tabBarCnt.tabBar.tintColor = UIColor.black
NotificationCenter.default.addObserver(self,
selector: #selector(showProfile),
name: NSNotification.Name("ShowProfile"),
object: nil)
NotificationCenter.default.addObserver(self,
selector: #selector(showSettings),
name: NSNotification.Name("ShowSettings"),
object: nil)
NotificationCenter.default.addObserver(self,
selector: #selector(showSignIn),
name: NSNotification.Name("ShowSignIn"),
object: nil)
}
@objc func showProfile() {
performSegue(withIdentifier: "ShowProfile", sender: nil)
}
@objc func showSettings() {
performSegue(withIdentifier: "ShowSettings", sender: nil)
}
@objc func showSignIn() {
performSegue(withIdentifier: "ShowSignIn", sender: nil)
}
@IBAction func onMoreTapped() {
NotificationCenter.default.post(name: NSNotification.Name("ToggleSideMenu"), object: nil)
}
func createTabBarController() {
let firstVc = UIViewController()
firstVc.title = "First"
// firstVc.view.backgroundColor = UIColor.red
firstVc.tabBarItem = UITabBarItem.init(title: "Home", image: UIImage(named: "HomeTab"), tag: 0)
let secondVc = UIViewController()
secondVc.title = "Second"
secondVc.view.backgroundColor = UIColor.green
secondVc.tabBarItem = UITabBarItem.init(title: "Location", image: UIImage(named: "Location"), tag: 1)
let controllerArray = [firstVc, secondVc]
tabBarCnt.viewControllers = controllerArray.map{ UINavigationController.init(rootViewController: $0)}
print(tabBarCnt.viewControllers)
self.view.addSubview(tabBarCnt.view)
}
}
В панели вкладок я хотел бы загрузить карты Google на первый виртуальный канал в первом контроллере представления.
Какпожалуйста, помогите с уважением !!
Ожидаемый результат