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()。
至于标签栏,你的方向是正确的,只是创建视图控制器失败了。
我是 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()。
至于标签栏,你的方向是正确的,只是创建视图控制器失败了。