gpt4 book ai didi

ios - 动态创建菜单但使用相同的 View Controller [PagingMenuController]

转载 作者:行者123 更新时间:2023-11-28 15:50:27 27 4
gpt4 key购买 nike

我正在尝试创建基于 ButtonBar 的分页菜单,但它将是动态的,因为创建的数据(菜单编号的标题)将来自服务器。不幸的是,没有为这种情况创建这样的例子。我知道要求这样的例子真的很愚蠢,因为我对这种情况一无所知。我只想使用这个库作为新库,因为它看起来比我使用的其他库更流畅。所以,我真的需要一个示例项目的帮助。我想为每个不同的选项卡使用相同的 View Controller ,例如 UITableViewController 来显示每个选项卡的数据。

有什么帮助吗???一个例子将不胜感激......谢谢..

最佳答案

我的解决方案是同步调用服务器以获取填充菜单所需的数据。可能有一个异步解决方案,但我不太明白,因为我的应用程序完全依赖于菜单项。

   fileprivate func parseMenuItems() {
self.menuItems = [MenuObject]()
let url = URL(string: MENU_URL)
do {
let data = try Data(contentsOf: url!)
let json = JSON(data: data)
for (_, subJson) in json["items"] {
guard let name = subJson["name"].string else {return}
guard let url = subJson["url"].string else {return}
let menuItem = MenuObject(name: name, url: url)
self.menuItems.append(menuItem)
}
} catch {
print(error)
}
}

我使用 SwiftyJson 进行解析,但这与此处无关。

此函数 (parseMenuItems()) 在 super.viewDidLoad() 之前被调用。

下一步是用 menuItems 数据填充 View Controller :

override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
var children = [UIViewController]()

for menuItem in menuItems! {
let child = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "TestViewController") as! TestViewController
child.name = menuItem.name
child.url = menuItem.url

children.append(child)
}
}
return children

}

希望对您有所帮助:)

关于ios - 动态创建菜单但使用相同的 View Controller [PagingMenuController],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42338139/

27 4 0