Swift iOS Dynami c Панель вкладок от json ответа - PullRequest
2 голосов
/ 22 января 2020

Я новичок в iOS / Swift. Мое приложение использует данные json, и мне нужно создать панель вкладок, используя ответ json. Я имею в виду, я получаю Array of Title из json, и мне нужно создавать элементы панели вкладок на основе этого массива. Данные массива / количество могут измениться, и приложение должно отобразить панель вкладок соответственно. Я пытаюсь создать панель вкладок программно без раскадровок (так как это огромная панель вкладок)

До сих пор я пробовал следующий код -

fun c tabBarCustom () {

    let tt = UITabBarController()

    var array1 = [UIViewController]()
    var controller1 = UIViewController()


    for i in 0..<navgTitle.count {

        controller1 = UIViewController(nibName: "WeatherViewController", bundle: nil)

        controller1.title = navgTitle[i]

    controller1.tabBarItem = UITabBarItem(title: navgTitle[i], image: .none, tag: 1)

        array1.append(controller1)



    }

    print(array1)

    tt.viewControllers = array1

    self.view.addSubview(tt.view)

}

Приведенный выше код неверен: «Не удалось загрузить NIB в комплекте:« NSBundle »с именем« WeatherViewController ». Я не уверен, как автоматически создавать несколько контроллеров представления с использованием массива заголовков, принимая заголовок в качестве имени. контроллера вида. Это возможно? и как l oop в массиве для создания контроллеров представления для каждого элемента панели вкладок

, пожалуйста, помогите. Спасибо

1 Ответ

1 голос
/ 22 января 2020

Вы используете перья? Если это так, ваш проект не может найти файл пера, и вы должны проверить это: Не удалось загрузить NIB в комплекте: 'NSBundle' . Или вы используете раскадровку? Если вы пытаетесь инициализироваться из раскадровки, вы сделаете что-то вроде этого:

let vc = sb.instantiateViewController(withIdentifier: "WeatherViewController")

(просто добавьте WeatherViewController в качестве идентификатора контроллера представления).

ИЛИ вы используете код? Если вы пытаетесь создать свой контроллер представления из кода, вам просто нужно выполнить WeatherViewController ().

Что касается панели вкладок, то вы находитесь в правильном направлении, просто создание контроллера представления терпит неудачу.

...