我使用 PHP api 从服务器获取数据。我在 AddCircleVC() 上创建了一个数组
var CircleArray: [String] = []
当我登录时,服务器返回一些圈子名称,并且该名称存储在这个数组中,如下所示:
if let UserArray = (json as AnyObject).object(forKey: "data") as? NSArray
{
for UserDic in UserArray
{
if let circlename = (UserDic as AnyObject).object(forKey: "circleName") as? String
{
print("CircleName: \(circlename)")
self.key.CircleArray.append(circlename)
print("CircleArray: \(self.key.CircleArray)")
UserDefaults.standard.set(self.key.CircleArray, forKey: "CircleArr")
continue
}
}
}
我想在 MenuVC() 中的这些圈子中显示名称。所以我使用了下面的代码:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 0
{
print("CircleNumber:\(key.CircleArray.count)")
if self.expandCell
{
return ((self.selIndexPath) != nil) ? 1 : key.CircleArray.count
}
else
{
return key.CircleArray.count
}
}
else if section == 1
{
return 7
}
else
{
return 0
}
}
但是每次我登录时都会打印圈号 0。如何在 MenuVC() 上显示所有圈名称。
最佳答案
您的代码中有一些含糊之处,这就是为什么我可能错了,但我理解的是您得到 JSON
数组位于 AddCircleVC
你想表明JSON
数组位于 MenuVC
。
所以当你保存所有 circlename
在数组中。只需将此数组传递给 MenuVC
就像我在下面给出的代码中向您展示的那样。
你总是得到 circle number 0
因为在 MenuVC
self.key.CircleArray
为空。
class AddCircleVC : UIViewController {
var CircleArray: [String] = []
func buttonLogin() {
parseJSON()
let menuVC : MenuVC // Create Object of MenuVC
menuVC.menuVcDataSource = CircleArray
/// push MenuVC
}
func parseJSON() {
if let UserArray = (json as AnyObject).object(forKey: "data") as? NSArray
{
for UserDic in UserArray
{
if let circlename = (UserDic as AnyObject).object(forKey: "circleName") as? String
{
print("CircleName: \(circlename)")
self.key.CircleArray.append(circlename)
print("CircleArray: \(self.key.CircleArray)")
UserDefaults.standard.set(self.key.CircleArray, forKey: "CircleArr")
continue
}
}
}
}
}
class MenuVC : UIViewController {
var menuVcDataSource : [String] = []
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 0
{
print("CircleNumber:\(menuVcDataSource.count)")
if self.expandCell
{
return ((self.selIndexPath) != nil) ? 1 : menuVcDataSource.count
}
else
{
return menuVcDataSource.count
}
}
else if section == 1
{
return 7
}
else
{
return 0
}
}
}
关于php - 如何在另一个 Controller 上快速显示服务器在应用程序中获取的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44194345/