Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
980 kez görüntülendi
ios development kategorisinde tarafından

merhabalar,

json ile veri çekip bu verileri tableview'a yazdırıyorum. secilen satirdan yeni bir view'a gidip secilen satirin bilgilerini yine json ile cekip ilgili alanlara yazidirmak istiyorum. detaya girecek olursak ogrenciler tableview'a listeleniyor secilen ogrencinin bilgilerini(adi,soyadi, vs. vs.) yeni bir view'da göstermek istiyorum. listelemeyi yaptim ancak 2 viewda secileni degilde 0. veriyi gosterebiliyorum ve fotografi cagirma olayinin icinden cikamadim. uygulama linkte bilgisi olan arkadaslar bi el atarsa cok sevinirim.. Herkese iyi calismalar.

https://drive.google.com/file/d/0B-mxXNuEWybRbHJsUUR0bFFSNU0/view

 

 

 

1 cevap

0 oy
tarafından
tarafından seçilmiş
 
En İyi Cevap

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.

tarafından
hocam oncelikle cevabiniz icin tesekkur ederim. cevabiniza dayanarak sorunun cozumune insallah ulasacagim.

uygulamadaki durumda aslinda ikinci sayfada verileri cekmeye gerek olmadiginin farkindayim daha onceki bi projeden bu kismi alip detaydaki alanlara veri cekmeyi basarabildim mi diye denedim sonrasinda kod kalabaligini temizlememisim. for dongusundeki hatayi ise fark edememisim. temmuz ayindan beri swift konusunda hic bir calisma yapamadim simdi ise dogru bildigim bilgiler bile birbirine girmis durumda maalesef bu uygulama cok zamansiz geldi, eski bilgilerimi tazeleme firsati bulmadan bunu yapmayi denedigim icin biraz zorlaniyorum sorularin sacma olusundan da bir sorun oldugunun farkindasinizdir sizde.
tarafından
sıfırdan bir örnek hazırladım fikir vermesi açısından. Aşağıdaki link üzerinden indirip inceleyebilirsin.
https://drive.google.com/open?id=0B_33To7xgYO7cVd0dVZoUmxNUEU

önemli not: proje'de cocoapods kullandım dolayısıyla projeyi "myStudent.xcworkspace" üzerinden çalıştırmalısın. (Beyaz olan xCode ikonu)
tarafından
Vallahi cok tesekkur ederim. orneginiz muazzam. bende tam https://www.youtube.com/watch?v=ea6_a_zbQrY bu ornegi uyguluyordum.  cocoa ve diger framework'ler olmadan olayi cozmus. basliktan ayni cevabi arayan olursa bi goz arabilir.  
sizede tekrar tesekkur ederim Yasin hocam. :)
...