Как создать вкладки динамического c и viewController с помощью CarbonKit в iOS Swift? - PullRequest
0 голосов
/ 05 февраля 2020

Я использовал карбоновый комплект для вкладок. Прямо сейчас я дал вкладки в stati c, но из API там добавлены еще две вкладки, которые могут отличаться. Как создать динамические c вкладки с одним viewcontroller.

вот код, используемый для одной вкладки viewcontroller:

  carbonTabSwipeNavigation = CarbonTabSwipeNavigation(items: ["Basic Details"], delegate: self)
    carbonTabSwipeNavigation.insert(intoRootViewController: self, andTargetView: infoView)
    carbonTabSwipeNavigation.toolbar.barTintColor = UIColor.white
    carbonTabSwipeNavigation.setSelectedColor(UIColor.black)
    carbonTabSwipeNavigation.setIndicatorColor(UIColor(hexString: "#363794"))


   public init() {

         super.init(nibName: "CreateCardViewController", bundle: Bundle(for: CreateCardViewController.self))
     }

     required init?(coder aDecoder: NSCoder) {

         fatalError("init(coder:) has not been implemented")

     }

public func carbonTabSwipeNavigation(_ carbonTabSwipeNavigation: CarbonTabSwipeNavigation, viewControllerAt index: UInt) -> UIViewController {


    return firstView()
   }
func firstView() -> UIViewController {



    let cont = WebViewController()
    self.tabContView?.addChild(cont)
    self.tabContView?.view.addSubview(cont.view)

    cont.didMove(toParent: tabContView)
    let authToken = UserDefaults.standard.string(forKey: "authToken")

    cont.formKey = formKey
    print("cont vl", formKey ?? "")
    cont.processInstanceId = processInstanceId
    cont.authTokenValue = authToken
    cont.fullFormKey = fullFormKey
    cont.taskIdValue = TaskIdValue
    return cont

}

как создать динамическую c вкладку с одним viewController с помощью carbonKit? Любая помощь высоко ценится пожалуйста ...

1 Ответ

1 голос
/ 05 февраля 2020

Вы можете создать массив строк из своего ответа или модели API, а затем назначить его для CarbonTabSwipeNavigation для создания динамической вкладки c.

var carbonTabSwipeNavigation = CarbonTabSwipeNavigation()
var arrItems = ["Eid Special", "Super Offer", "4G Device"] 

func initCarbonKitTab() {

        //arrItems is an array of string that you will create from API response

        carbonTabSwipeNavigation = CarbonTabSwipeNavigation(items: arrItems, delegate: self)
        carbonTabSwipeNavigation.insert(intoRootViewController: self, andTargetView: infoView)
        carbonTabSwipeNavigation.toolbar.barTintColor = UIColor.white
        carbonTabSwipeNavigation.setSelectedColor(UIColor.black)
        carbonTabSwipeNavigation.setIndicatorColor(UIColor(hexString: "#363794"))
}

, которую вы можете вызвать вышеупомянутой функцией согласно вам нужно, как после ответа API.

self.initCarbonKitTab()

И затем вы можете использовать массив строк или индексов, чтобы показать контроллер представления для определенной c вкладки или индекса.

func carbonTabSwipeNavigation(_ carbonTabSwipeNavigation: CarbonTabSwipeNavigation, viewControllerAt index: UInt) -> UIViewController {

    if index == 0 {
        let vc = self.storyboard!.instantiateViewController(withIdentifier:”ViewControllerA”) as!  ViewControllerA
        return vc 
    }            
    else {
        let vc = self.storyboard!.instantiateViewController(withIdentifier:”ViewControllerB”) as!  ViewControllerB
        return vc 
    }
 }

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...