php - 如何在另一个 Controller 上快速显示服务器在应用程序中获取的数据

标签 php arrays swift uitableview

我使用 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/

相关文章:

php - Yii2 和 OAuth2 插件 Filsh/yii2-oauth2-server : Unauthorized when sending POST data

javascript - 在 wordpress 中仅在一页(联系我们)中更改 CSS

arrays - nodejs从缓冲区数据到字节数组的转换

java - 使用 JButtons 的战舰

ios - contentOffsetForScrollingToRowAtIndexPath :atScrollPosition:usingPresentationValues

php - 表值没有变化

java - 错误: generic array creation with my own object

swift - 将结构体属性名称作为参数传递,然后访问该属性

swift - 如何从另一个文件更新 NSStausItem?

php - 如何使用 Javascript 取消 PHP 中的 session ?