从json响应中快速获取iOS动态标签栏

问题描述 投票:0回答:1

我是iOS / Swift的新手。我的应用程序使用的是json数据,我必须使用json响应创建标签栏。我的意思是,我从json获取标题数组,并且我必须基于该数组创建选项卡栏项。阵列数据/计数可能会更改,应用程序应相应显示标签栏。我正在尝试以编程方式创建没有情节提要的标签栏(因为这是巨大的标签栏)

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

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)

}

上面的代码没有说-无法将名称为“ WeatherViewController”的捆绑包“ NSBundle”加载到NIB中我不确定如何使用title数组(以title作为视图控制器的名称)自动创建多个视图控制器。这可能吗?以及如何在数组中循环以为每个选项卡栏项创建视图控制器

请帮助。谢谢

swift uiviewcontroller tabbar
1个回答
0
投票

您在使用笔尖吗?如果是这样,您的项目将找不到nib文件,您应该检查以下内容:Could not load NIB in bundle: 'NSBundle'。还是您正在使用Storyboard?如果您试图从情节提要中进行初始化,则将执行以下操作:

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

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

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

关于选项卡栏,您的方向正确,只是创建视图控制器失败。

© www.soinside.com 2019 - 2024. All rights reserved.