Swift iOS 来自 json 响应的动态标签栏

Swift iOS Dynamic Tab bar from json response

我是 iOS/Swift 的新手。我的应用程序使用 json 数据,我必须使用 json 响应创建标签栏。我的意思是,我从 json 获得标题数组,我必须基于该数组创建标签栏项目。数组 data/count 可能会更改,应用程序应相应地显示标签栏。我正在尝试在没有故事板的情况下以编程方式创建标签栏(因为这是巨大的标签栏)

到目前为止,我已经尝试了下面的代码 -

func 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' 我不确定如何使用标题数组自动创建多个视图控制器,将标题作为视图控制器的名称。这可能吗?以及如何在数组中循环为每个标签栏项目创建视图控制器

请help.Thank你

你在用笔尖吗?如果是这样,你的项目找不到 nib 文件,你应该检查这个:Could not load NIB in bundle: 'NSBundle'。或者你在使用故事板?如果您尝试从情节提要中进行初始化,您将执行如下操作:

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

(只需确保将 WeatherViewController 添加为视图控制器的标识符)。

或者您正在使用代码?如果您尝试从代码创建视图控制器,您只需执行 WeatherViewController()。

至于标签栏,你的方向是正确的,只是创建视图控制器失败了。