inceledim paylaştığın kodu.
öncelikle, studentsVC içerisinde https://www.netdata.com/JSON/a6519151 adresinden öğrenci bilgilerinin tümünü alıyorsun. tamam
extract_data fonksiyonuyla bu json verisinin içeriğini parse ediyor MyStruct ile list array'inin içerisine atıyor ve tableView'da listeliyorsun. güzel
buraya kadar tamam.
listedeki ilgili öğrenciye tıklandığında, öğrenci hakkındaki daha fazla detayın görüntüleneceği InfoStudentVC'a yönlendirilecek kullanıcı.
1- viewDidload methodu ilgili viewController bir kere initialize edildikten sonra bir daha tetiklenmez. Dolayısıyla InfoStudentVC ilk kez çağırdıktan sonra o viewDidload içerisindeki kodlarının hiç biri bir dahaki görüntülemelerde işleme alınmayacak.
bu işlemler
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
metodu içerisine al.
2- studentsVC içerisinde zaten https://www.netdata.com/JSON/a6519151 adresinden tüm datayı bir kere çekiyorsun. InfoStudentVC içerisinde tüm bu datayı niye bir daha çekiyorsun?
hadi çektin diyelim, ilk listede tıklanan öğrenciyi bu ikinci request'inde aldığın o tüm datanın içerisinden neye dayanarak filitreleyeceksin. sen paylaştığında kod da
if let currencyRate = jsonResult as? NSArray
{
for i in 0..<1
{
ile o kadar alınan data içerisinde sadece ilk sırada yer alanı alıyorsun. Bunu hangi mantıkla yaptın inan hiç anlamadım.
sana önerim zaten studentsVC içerisinde tüm datayı bir kez alıyorsun.
MyStruct'ın kapsamını genişlet ve öğrenci ile ilgili alınan tüm datayı kapsamasını sağla.
daha sonra ilk listede öğrenciye tıklandığında list arrayının ilgili index'indeki veriyi InfoStudentVC içerisindeki oluşturduğun bir MyStruct'ın property'sine yolla.
viewWillAppear metodu içerisinde bu MyStruct property'sine gelen datayı parse edip ilgili alanlara ekle.