Imam problem sa mojom iPhone aplikacijom: Tabbar aplikacija sa pet tabova, svi sa navig. controllerima, drugi, treci i cetvrti sa tableViewControllerima i coustom table cell. Za cetvrti sam napravio detailView sa navig.barom, povezao sve outlete, ns view dodao label i ... ne ucitava se. Evo ovo je kod metoda didSelectRowAtIndexPath koji bi trebalo da ucita detailView:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { FourthDetViewController *fourthDetViewController = [[FourthDetViewController alloc] initWithNibName:@"FourthDetViewController" bundle:nil]; [self.navigationController pushViewController:fourthDetViewController animated:YES]; [fourthDetViewController release]; }
Program radi, nema upozorenja i gresaka, ne chrash ali.... Pocetnik sam , ovo mi je prvi pokusaj pa molim za strpljenje i malo detaljnije objasnjenje. Hvala unapred!!
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
return nil;
}
Tu ti je problem. Ako ti ne treba ta metoda, makni ju totalno. Ako ti treba, ne smijes vratit nil, nego pointer na NSIndexPath. Vjerojatno zelis vratit bas ovaj "indexPath", dakle:
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
return indexPath;
}
Jer ako vratis nil, nece uopce bit pozvana metoda - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath u kojoj instanciras detail vc i pushas ga na navigation controller
Svaka cast ficho :) na svaki upit oko IOS programiranja se maximalno trudis :)
Cek, oces rec da u cetvrtom tabu nemas UINavigationController, nego samo UINavigationBar. Jer tako zvuci iz ovoga sto si napisao, a u tom slucaju ti je to i problem. Navigation bar je samo UI element, a navigation controller je klasa koja upravlja vecim brojem drugih controllera uz pomoc navigation bara. Kod koji si postao je ok, u njemu definitivno nije problem. Al opet, da si pokusao pozvati pushViewController:animated: na nepostojecem navigation controlleru, valjda bi se srusio... Ne znam, tesko je s ovako malo info ista pametno rec, daj jos detalja pa cemo vidjet.
ficho hvala na komentaru. OK, svi "tabovi", svih pet imaju nav.controlere. Cetvrti "tab" ima table view(kao i drugi i treci) sastavljen od custom table cell-s. I sve radi super. A onda sam za cetvrti napravio DetailView koji bi trebalo da bude pushed kada se klikne na table cell i taj Detail view sadrzi File's Owner(class FourthDetViewController), First Responder(UIResponder), View(UIView i za njega sam u Inspectoru>Simulated User Interface Elements kao Top Bar izabrao Navigation Bar).View kao child sadrzi label(UILabel). Outlets:Files Owner: label-label; view-view View: view-files owner Label: label-files owner. Eto neznam sto bih vise dodao, ako hoces posalji mi privatnu poruku sa e-mail adresom pa cu ti poslati cijeli project. Inace na SDK 4.2 sam.
filip@me.com pa posalji ak ti vec nije problem :)
Da, da!! "Works like dream"! Hvala ficho!!
A sta cu, moram pazit na svoje padawane :D
@ficho slozi neki tutorial za nas younglings-e
Sto te tocno zanima i kakvu podlogu imas?
Ma samo mi preporuci neki dobar tutorial za nauciti osnove Obj-C (Hello World i sl.), kad to savladam onda ce biti pravih pitanja. A sto se podloge tice vec 4-5 god. sam na PHP-u, a prije toga sam radio VB (ali to bi mi rebalo malo vremena da se posjetim, vecina tog je isparila)
Onda pretpostavljam da znas i neke osnove C-a? Ima ovdje jedan dobar uvod u Objective-C, a imas odmah i link na C tutorial ako zatreba.
To ti je tek toliko da vidis kako jezik izgleda, a ako zelis ozbiljno krenut, onda je obavezno stivo Appleov Learning Objective-C: A Primer.