如何根据我的 json 响应数组制作标签栏(ios swift)

2024-01-12

问题:我想基于 JSON 响应数组创建选项卡栏,这意味着,如果我得到 6 个元素响应,它将创建 6 个选项卡。

尝试过:我已经通过使用水平滚动集合视图来制作它,但我想通过原始选项卡栏来制作它。

那么,我该怎么做呢?

please tell me the possible solutions and dont put this on hold..

这是我的回复,那么我该怎么办?

tabs =     (
            {

        id = 0;
        name = Home;

    },
            {

        id = 1;
        name = Winkel;

    },
            {

        id = 2;
        name = Zoeken;

    }

);
})

感谢@Ankit提供快速代码,但是当使用您的代码并传递名为“arr”的数组时出现此错误无法将类型“NSMutableArray”的值转换为预期参数类型“[[String:Any]]”

这是我的代码

func web()
{

    request(.GET, "http://www.horecasupply.nl/AJAX?function=appStructure", parameters: nil, encoding: .JSON).responseJSON { (response:Response<AnyObject, NSError>) -> Void in
        print(response.result.value)

        if (response.result.value != nil)
        {
            self.arr = (response.result.value)!["tabs"] as! NSMutableArray

            print(self.arr)
        }


        loadTabbarsWithArray(arr)

    }

上面你可以显示我的 json 响应,那么我该如何解决它


UITabbarController 中的选项卡数量取决于我们在选项卡栏中添加的 ViewControllers/NavigationControllers 的数量。

根据服务响应的计数,您可以在运行时更改选项卡栏中视图控制器的数量。https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITabBarController_Class/#//apple_ref/occ/instp/UITabBarController/viewControllers https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITabBarController_Class/#//apple_ref/occ/instp/UITabBarController/viewControllers

/*
tabs =     (
            {

                id = 0;
                name = Home;

            },
            {
                /...
            }
            )
*/

- (void) loadTabbarsWithArray:(NSArray*)tabs{

    if (self.tabBarController == nil) {
        self.tabBarController = [[UITabBarController alloc] init];
    }
    self.tabBarController.viewControllers = [NSArray array];

    NSMutableArray *viewControllers = [NSMutableArray arrayWithCapacity:0];
    for (NSDictionary *record in tabs) {
        UIViewController *viewController = [[UIViewController alloc] initWithNibName:"CustomViewController" bundle:nil];
        viewController.title = record[@"name"];
        viewController.tabBarItem.title = record[@"name"];
        [viewControllers addObject:viewController];
    }
    [self.tabBarController setViewControllers:viewControllers];

}

in Swift

func loadTabbarsWithArray(let tabs:[[String: Any]]){

        if (self.tabBarController == nil) {
            self.tabBarController = UITabBarController();
        }
        tabBarController!.viewControllers = [UIViewController]();

        var viewControllers = [UIViewController]();
        for  record:[String: Any] in tabs {
            let viewController:UIViewController = UIViewController(nibName: "CustomViewController", bundle: nil);
            viewController.title = record["name"] as? String;
            viewController.tabBarItem.title = record["name"]as? String;
            viewControllers.append(viewController);
        }
        tabBarController!.viewControllers = viewControllers;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据我的 json 响应数组制作标签栏(ios swift) 的相关文章

随机推荐

  • 向 CreateThread 传递多个参数

    问题 How to pass具体来说two论点创建线程 http msdn microsoft com en us library ms682453 VS 85 aspx when 参数一 类型SOCKET 论证二 一个接口指针 COM S
  • Django 文件字段编码

    我有一个 django 模型如下 class ExportFile BaseExportFile created timestamp models DateTimeField auto now True editable False dat
  • 使用 d3.js 制作分组条形图

    我是 d3 js 的新手 我发现很难创建分组条形图 但我尝试了一些似乎不正确的方法 我想要 x 轴上的月份和 y 轴上的组数 火星和木星 像这样的东西Link https i stack imgur com VowEA png var sv
  • 在 Jsch 中设置 ASCII 模式

    我需要解决当前遇到的 Unix Windows 文件格式 LF 到 CRLF 问题 我使用的 ftp 客户端是 Jcraft 的 Jsch 在线文档非常简单 尽管我遇到了一个可以设置的标志 SSH FXF TEXT MODE 启用 ASCI
  • 类方法无法访问属性

    我创建了一个像这样的类 function MyClass var myInt 1 MyClass prototype EventHandler function e alert this myInt 不幸的是 this是触发的事件 在我的例
  • 如何将大型多维数组部分写入 HDF5 文件?

    我在 C 中使用 HDF5DotNet 并且有一个非常大的数组 几个 GB 我想将其写入 HDF5 文件 它太大了 无法将整个内容存储在内存中 因此我一次生成它的区域并想将它们写出来 但在读回时仍然让它看起来像一个大数组 我知道 HDF5
  • 背景图像占窗口的 100%(并随之调整大小)

    重复 拉伸和缩放 CSS 背景 https stackoverflow com questions 376253 stretch and scale css background 如何拉伸背景图像以覆盖整个 HTML 元素 https st
  • PHP 对象数组不是线性缩放的,而全局数组却可以?

    使用对象内数组作为属性与使用全局 php 数组变量相比 存在一个主要的性能问题 为什么 为了对这个问题进行基准测试 我创建了以下基准测试 它存储一个越来越大的数组 并以 stdClass 作为节点 运行了两个测试 一个使用类中的数组属性 另
  • 如何阅读Haskell中内置函数的实现代码/源代码?

    例如 如果我想阅读默认的源代码curryPrelude 中的函数 我在哪里引用 有没有办法阅读它的实现 我尝试在Hoogle中搜索它 但它没有给出确切的实现 只是给出了输入和输出类型 我在堆栈上使用 GHCI 来运行 haskell 胡格尔
  • SQL查询的执行顺序

    我对该查询的执行顺序感到困惑 请解释一下 我对何时应用联接 调用函数 随案例添加新列以及何时添加序列号感到困惑 请解释这一切的执行顺序 select Row number OVER ORDER BY SELECT 1 AS Serial N
  • sql server 中的多个 NOT LIKE

    我有一张像这样的桌子 id name 302345 Name1 522345 Name2 1X2345 Name3 2X2345 Name4 1X8765 Name5 2X2123 Name6 502345 Name7 M62345 Nam
  • 为什么食谱在看起来没有必要时提倡重写 getItemViewType 和 getViewTypeCount ?

    我一直在学习 Commonsware Android 编程教程 在教程 5 额外学分 2 中 挑战是根据对象的 类型名称 餐厅的 类型 属性 使用多种布局在 ListView 中显示行 这是一个字符串 因此 它建议重写getItemView
  • 替换lua中包含特殊字符的字符串

    我想替换lua中的字符串 这是字符串 strng begin matrix 1 2 3 4 5 6 7 8 10 end matrix 我想更换 begin matrix by by by end matrix by 我还想删除所有空格 所
  • Python 3 静态成员

    我正在努力实现以下目标 class A username None username get username def get username self if username is None try uname os environ U
  • npm 命令 - 是否需要 sudo?

    目前我总是跑步sudo npm install
  • 如何模仿描述输出?

    想象一下水果类 class Fruit NSObject override var description String return super description var apple Fruit var banana Fruit p
  • Pandas to_sql“附加”到现有表导致Python崩溃

    我的问题本质上是这样的 当我尝试将 to sql 与 if exists append 一起使用并且名称设置为 SQL Server 上已存在的表时 Python 崩溃 这是我的代码 event listens for engine bef
  • EF 的自定义 ValidationContext?

    我使用 EF 作为我的数据提供程序来保存和验证我的项目 我有一些自定义验证逻辑 需要访问其他服务或项目 我知道 ValidationContext 类提供这些选项 我的问题是如何通过服务提供商或 EF 项目获取自己的验证上下文 当我在 PO
  • 构建过程中出现此错误的原因可能是什么 - “架构 i386 的未定义符号”

    这是我第一次使用位置服务 并且遇到了以下链接器错误 i386 架构的未定义符号 OBJC CLASS CLLocationManager 我已经添加了 import
  • 如何根据我的 json 响应数组制作标签栏(ios swift)

    问题 我想基于 JSON 响应数组创建选项卡栏 这意味着 如果我得到 6 个元素响应 它将创建 6 个选项卡 尝试过 我已经通过使用水平滚动集合视图来制作它 但我想通过原始选项卡栏来制作它 那么 我该怎么做呢 please tell me