Я использовал 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
}
}
}
Других решений пока нет …