Как показать серверные данные в приложении на другом контроллере в swift

Я использовал 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 ().

0

Решение

В вашем коде есть некоторая двусмысленность, поэтому я могу ошибаться, но я понимаю, что вы получаете 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
}

}

}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]