UINavigationController, UITabBarController, Views
(1 korsinik/a gleda/ju temu) (1) Gost

UINavigationController, UITabBarController, Views


08.02.2010 | 14:57
Vec sam postao po nekim stranim forumima ali ameri pavaju pa cu ovdje i na mackorisniku probat mozda se nadje kakva dobra duša...

Znači šta pokušavam napraviti je jedan tab bar koji upravlja Viewovima u različitim divovima. Neki od tih tabova imaju svoj navigation kontroler, neki ne...
IB fileovi i veze među njima su na slikama da ne duljim previše, a i neka netko pametniji od mene pregleda jesam li sve dobro povezao...






Znači to sve funkcionira, tab bar upravlja i izmjenjuje pogleda, i pogledi se normalno iscrtavaju, uitableview na prvom pogledu, dohvaća tablesource i crta svoje ćelije, sve fercera nevjerojatno... Table data source je plist file sa slike 5... za sada je plist file a kasnije dolazi baza podataka sa istom strukturom...
Kako se vidi iz strukture plist file-a ideja je da u rootu pokazem firstviewcontroller i napunim tablicu iz root data sourcea. Prilikom klika na pojedini red, vadim svu "djecu" iz tog reda i koristim ih kao datasource za isti view controler... Ovako koristim isti pogled rekurzivno i samo ih pusham jedan na drugi sve do trena kad vise nemam "djece". to bi znacilo da sam dosao do kraja (nema podkategorija znaci riječ je o proizvodu) i da prikažem singleview iliti ga opis pojedinog proizvoda.

U ideji ovo sve štima, i u praksi djelomično radi...
Znači događa se sljedeće:
Dobijem root view, sa ispisanim svim root podatcima, svaki od njih klikom daje odgovarajući novi pogled (pusha na navigationcontroler) bilo da ima ili nema djece (znaci u ovoj fazi navigationcontroler dobro radi posao i distinkciju ima ili nema djece), ali kad probam u tom drugom pogledu pogledati "djecu" (pushati navigationcontroller još jednom) ništa se ne događa... U konzoli vidim da on radi uredno distinkciju između ima i nema djece (znači da se datasource tablice uredno učitao) ali ništa se ne događa...

evo firstviewcontroller na pregled....
#import "FirstViewController.h"
#import "SingleViewController.h"
#import "CrotuneDemoAppDelegate.h"
#import "CellView.h"


@implementation FirstViewController

@synthesize tableDataSource,CurrentTitle,CurrentLevel,navigationController,reklama,mreklama,stringMreklama,stringReklama;



// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];
	//
	
	if (CurrentLevel==0) {
		//start datasource
		NSArray *tempArray = [[NSArray alloc] init];
		self.tableDataSource=tempArray;
		[tempArray release];
		
		CrotuneDemoAppDelegate *AppDelegate = (CrotuneDemoAppDelegate *)[[UIApplication sharedApplication] delegate];
		self.tableDataSource = [AppDelegate.data objectForKey:@"Rows"];
		
		self.navigationItem.title = @"Categories";
		
		[mreklama setImage:[UIImage imageNamed:@"mkras.jpg"]];
		[reklama setImage:[UIImage imageNamed:@"kras.jpg"]];
		
	}
	else{
		
		self.navigationItem.title = CurrentTitle;
		[mreklama setImage:[UIImage imageNamed:stringMreklama]];
		[reklama setImage:[UIImage imageNamed:stringReklama]];
		
	}
	[UIView beginAnimations:nil context:NULL];
	[UIView setAnimationDelay:1];
	[UIView setAnimationDuration:1];
	[reklama setAlpha:0];
	[UIView commitAnimations];
		//NSLog(@"%@",tableDataSource);

}


	//table delegate metods

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
	
	return [self.tableDataSource count];

}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
	
	static NSString *CellIdentifier = @"CellView";

	
	CellView *cell = (CellView *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
	if (cell == nil){
		
		NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CellView" owner:nil options:nil];
		
		
		for(id currentObject in topLevelObjects)
		{
			if([currentObject isKindOfClass:[CellView class]])
			{
				cell = (CellView *)currentObject;
				break;
			}
		}
		
	}
		// Set up the cell...
	NSDictionary *dictionary =[self.tableDataSource objectAtIndex:indexPath.row];
	
	[[cell title] setText:[dictionary objectForKey:@"Title"]];
	[[cell background] setImage:[UIImage imageNamed:[dictionary objectForKey:@"Image"]]];
	
	return cell;
}


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
	
	
		//Get the dictionary of the selected data source.
	NSDictionary *dictionary = [self.tableDataSource objectAtIndex:indexPath.row];
	
		//Get the children of the present item.
	NSArray *Children = [dictionary objectForKey:@"Children"];
	
	if([Children count] == 0) {
		SingleViewController *detailView =[[SingleViewController alloc] initWithNibName:@"SingleView" bundle:[NSBundle mainBundle]];
		
			//ovdje dodaj objekt sa podatcima od pojedinog subjekta
		[self.navigationController pushViewController:detailView animated:YES];
		[detailView release];
	
	}
	else {
		
			//Prepare to tableview.
	
		FirstViewController *nextView = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:[NSBundle mainBundle]];
		
			//Increment the Current View
		nextView.CurrentLevel += 1;
		
			//Set the title;
		nextView.CurrentTitle = [dictionary objectForKey:@"Title"];
		
		nextView.stringMreklama=[dictionary objectForKey:@"SAdd"];
		nextView.stringReklama=[dictionary objectForKey:@"LAdd"];
		
		nextView.tableDataSource = Children;
		
			//Push the new table view on the stack
		[self.navigationController pushViewController:nextView animated:YES];
		
		
		[nextView release];
		
		[tableView deselectRowAtIndexPath:indexPath animated:YES];
	}
}


- (void)didReceiveMemoryWarning {
	// Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
	
	// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
	// Release any retained subviews of the main view.
	// e.g. self.myOutlet = nil;
}


- (void)dealloc {
    [super dealloc];
}

@end


molim pomoć.. glava boli više...
08.02.2010 | 22:27
Malo si to premaštovito opisao, na žalost ne i dovoljno jasno.

Dakle, vrlo vjerojatno te nisam razumio, ali tek da pokušam po osjećaju, možda nam se potrefi...

Kako stavri stoje, lako je moguće da uzrok tvog problema nema nikakve veze sa tabavima i spominješ ih tek toliko da nas dodatno zbuniš.



OK, dalje mi se čini da ti imaš jedan ViewController koji bi trebao hendlati svaki TableView u tvojem progamu iako to zaprvo nije zamišljeno na taj način u samom SDK i u svim primjerima koje sam vidio, ali ajde zašto ne, sve su to ionako samo pointeri.

Iz jedne tabele u drugu prelaziš sa onim -pushViewController:animated: pretpostavljam? Pošto ta metoda ne gura View već ViewController možda je u tom caka? Neka ivar tog kontrollera sam mora biti postavljena tako da tvoja -viewDidLoad zna koje podatke mora učitati, ali pošto je to sad skroz nova instanca conroller to naravno neće ići tako već bi najpametnije bilo koristiti klasičnu C globalnu varijablu, ali deklariranu kao static unutar .m fajla za kontroler pa će to biti globalna varijabla za sve kontrolere.

OK, jesam li barem blizu?

Igor
08.02.2010 | 22:54
Tabovi vjerojatno nemaju nikakve veze, koliko ja kontam, ali spominjem ih cisto da se zna odakle sam poceo, i da potvrdim svoje sumnje kako on nema veze sa mojim problemom.. upravo si potvrdio :-D

Konfuzno mi je cili dan, jer sam na mrtvoj tocki od sinoc i ne mrdam, i ti si prvi koji mi je odgovorio nakon postanja na 6 foruma... Tako da se ispricavam za konfuziju koju sam izazvao...

Svaki table view ima svoj kontroler nije upitno, neznam kako si vidio da nema. Iako nije tako zamisljeno,niti je ovdje slucaj, vec jednom sam tako radio i sve je ferceralo bez problema, ako tablice imaju istu strukturu a drugaciji data source... no to ovdje nije slucaj...

Znam da se pushaju view controlleri,toliko sam do sad naucio.. viewDidLoad prvi put vadi podatke iz Data.plist fajla, svaki sljedeci datasource mu je postavljen objekt tabledatasource - koji je prethodni pogled na stogu postavio iz svoje djece...
nextView.tableDataSource = Children;


Datasource se uredno instancira svaki put, provjereno sa nslog u metodi viewDidLoad..

Jedino sto meni pada na pamet je to da se navigationcontroller kreira kad se pokrene aplikacija iz mainviewa uredno i fino, a kad pusham novi viewcontroller on izgubi vezu sa postojecim navigationcontrollerom i nezna gdje ce pushati novi pogled...

Zadnji potez ocajnika - Jeli moguce da mi radi problem to sto je navationcontroller u jednom nibu, tableview u drugom???

Zbunjen totalno...
08.02.2010 | 23:07
E i moglo se primjetiti do sada kad govorim o pogledu, govorim o viewcontrolleru... :-D
08.02.2010 | 23:40
ok, rjesio problem...
samo u sljedeci view(controller) koji cu pushat kopirao postojeci navigationcontroller iz parent pogled(controller)a...
:-D

Hvala na pomoci ipak... :-D
Moderatori: Bertone
  • Stranica:
  • 1

Vikalica™

Zadnja poruka: pred 3 sati, 31 minuta
  • cariblanco: Ja sam našao stari filter u boji, dok još nije bilo kolor-tv, ako netko ima crno-bijeli, ja mu taj filter poklanjam :)
  • zvone: Ljudi imam neke screen protectore za 12 pro i par caseova. Zena ima novi mob a ostali stari dodaci. Ako netko zeli pokupiti na podrucju Zagreba.
  • drlovric: Ja koristim FluidVoice diktiram vise od 70% mailove, kao i text poruka.
  • smayoo: :D
  • Bertone: Ma znam kako diktiranje funkcionira ali iskreno se ne sjećam kada sam zadnji put čuo tišinu :(
  • smayoo: To naravno da ne funkcionira ako više ljudi priča u glas ili ako ti radio svira dok pričaš.
  • Bertone: Ma to sa diktiranjem je pušiona, nevezano za poruke nekidan vozim mamu doma i trebam nešto ženu pa je pokušam nazvati no auto ponavlja da ne razumije,... na kraju sam morao reći mami da malo zašuti :D
  • smayoo: Ne smiješ diktirati kako normalno pričaš. Kad se priča usporeno i jasno razdvaoja riječi, točnost je ≥90%
  • smayoo: :-D
  • Bertone: Znam, zato često i dobijem haiku od poruka :D
  • smayoo: Diktiraj poruke u vožnji. Radi sve bolje.
  • Yonkis: Bertone, ne mogu, vozim. :)
  • Bertone: Eto današnje mladeži, vozi i piše poruke,... ajd se sad sam kazni :)
  • Yonkis: "obaviti", pobjeglo mi, naletio sam na šaht u vožnji.
  • Yonkis: Kloba, ne možemo ti ga MI aktivirati, to moraš sam bavi
  • Kloba: Pozdrav ekipa ima neki znalac da mi aktivira whats app?
  • smayoo: A propos smještanja konektora... :P
  • smayoo: U Beogradu ulazi stari deda sa štapom, klimavo i s mukom u gradski autobus, obrati se vozaču: "Mladiću reci mi gde bih mogao da smestim kosti...?", a vozač na to skoči ljutito: "Nemoj da tebi Kosta smesti!" :D
  • Bertone: Bolje i straga nego kad ga Apple smjesti ispod :D
  • jura22: I smjestila ga straga.
  • smayoo: To je sve EU standardizirala na USB-C. :D
  • jura22: Izgleda da mora biti više od dva konektora!
  • jura22: Landtag Brandenburg ih ke nabrojao: Gejevi, lezbijke, androgini, birodne osobe, trans muškarci, trans žene, rodno promjenjive osobe, rodno kvir osobe, interseksualne osobe, interseksualne žene, interseksualni muškarci, transseksualne osobe, transseksualne žene, transseksualni muškarci, trans osobe, transmuške osobe, transženske osobe, rodno fluidne osobe, panrodne osobe, osobe s dva duha (
  • jura22: Misliš da se smiju stavljati samo muški ili ženski konektori?
  • smayoo: :D
  • Riba: Po muskim i zenskim konektorima.
  • jura22: Zašto ženski robot mora imati sise? U stvari, zašto uopće postoje muški i iženski roboti? Kako ih tazlikovati?
  • smayoo: @bbosnjak, otvori temu u forumu pa pitaj da ti se jave jabučari iz Zagreba ili okolice koji imaju monitor iz te generacije da probaš s njihovom ciglom
  • smayoo: Aha, to ima vanjsku ciglu za napajanje? Pa da, onda svakako treba probati s drugom ciglom prije ikakvog servisa.
  • jura22: Sumnjam. Rekoi su neka nabavim nateriju i onda je budu zamijenili. U stvari, trebao sam je nabaviti, sam zamijeniti i inda njima odnjeti novce.
  • dpasaric: Za Cinemu 23 prvo provjeri da nije samo napajanje, 90% slučajava bude to.
  • Riba: Vjerojatno su pretrpani poslom kao i svi.
  • jura22: Vidim hvalite RAM servis. Ja sam ih pitao za promjenu baterije pa su poceli kolutati s ocima. Kao da su me htjeli otpiliti.
  • jura22: Jok, Ludbreg je centar svijeta.
  • bbosnjak: Jbg. mi Zagrebčani mislimo da smo u cetru svijeta. Hvala na linku.
  • Riba: Kad ljudi ne kazi lokaciju obicno se radi o Zagrebu. :) U tom slucaju preporuka za [link]
  • Riba: A gdje se nalazis?
  • bbosnjak: Imam Apple Cinema Display 23-Inch. Radio je ok do prije mjesec dana i prekrasan je. Imao je jednu crtu mrtvih pisela po sredini ali koga briga kad je tako elegantan i dobru sliku ima. I onda je prestao raditi. Ima li igdje servis koji bi to mogao pogledati i možda popraviti ili bi to možda netko udomio pa se time pozabavio. Ne mogu se natjerati da ga odnesem na glomaznni otpad ko da je neki šte
  • smayoo: [link]
  • Pongy75: Meni se čini i jedno i drugo, app šema. A vaditi se na bilesnu djecu, ako je to uopće istina je krajnje bezobrazno. Ovo mjesto nikad nije bila takva zajednica.
  • drlovric: Ja sam slab na djecu i radio bih pomogao i u ovom konkretnom slucaju. Vec sam to radio ovdje. Samo nisam shvatio kakvu pomoc on ocekuje konkretno. Da skupimo pare za M4 ili da mu ga nekako nadjemo unutar njegovog budzeta. Taj dio mi nije jasan...
  • Pongy75: Napad je najbolja obrana - kad te uberu!
  • Sarek: I stvarno mu nitko nije ništa loše napisao, a on je odmah krenuo u neke obrambene teze
  • Sarek: Meni je isto bilo čudno da na jasno postavljeno pitanje krenu traktati nečega što nema veze s pitanjem. Dva su moguća scenarija ili se čovjek pogubio u svemu i samo se krivo izrazio ili je stvarno neka muljaža. U svakom slučaju trebalo bi objašnjenje od dotičnog člana ili ako je ovo drugo u pitanju neka admini reagiraju
  • jura22: Tu je pitao nesto za MacMini M4 > M4 Pro
  • jura22: [link]
  • Pongy75: Avioni, milioni. kamioni
  • matijazx: -- to je bila prevara. Kolega forumaš mu je htio posuditi svoj Mac, al ovaj nije htio. Scammer.
  • Pongy75: Malo popratiti postove, sve je bez logike. Šarena priča, ima svega.
  • jura22: 8.2.2025. Pise da je sve prebacio s M4 na M4 Pro, ne znam tko je ovdje lud?

Za vikanje moraš biti prijavljen.

Prijava

Novo na Jabučnjaku

Teme

Poruke

Oglasi

Anketa

Koji Mac koristite?

Page Speed 0.83 Seconds

Provided by iJoomla SEO