1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Problem mit iPhone Programmierung (RootViewController.h)

Dieses Thema im Forum "iOS-Developer" wurde erstellt von exitus, 03.11.09.

  1. exitus

    exitus Antonowka

    Dabei seit:
    29.12.07
    Beiträge:
    359
    Servus,

    hab mich nun mal ran gemacht ans tüfteln, komme nur an einer stelle leider nicht weiter.

    Ich habe ein Tutorial nach gemacht und wollte es nun selbständig erweitern.

    Es geht darum, dass ich eine Tabelle habe und dort halt auswählen kann... im Tutorial wurde die erste Reihe belegt, wo wenn man auf die erste reihe klickt man zu einem zweiten view gelangt, dort wird ein foto angezeigt.

    nun wollte ich aber eine zweite zeile hinzufügen und dort ein nächsten view impelementieren welcher ein anderes foto beinhaltet.

    mein problem ist das ich nun alles soweit fertig habe, allerdings nicht die zweite zeile eingefüht bekommme.

    Code:
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
        return 1;
    }
    
    
    // Customize the number of rows in the table view.
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
        return 1;
    }
    
    
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        
        static NSString *CellIdentifier = @"Cell";
        
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil) {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        }
        
    	[cell setText:@"Cake"];
    
    	
        return cell;
    
    
    }
    
    .
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    
    	if(self.cakeViewController == nil){
    		CakeViewController *cakeView =[[CakeViewController alloc] initWithNibName:@"Cake" bundle:nil];
    		self.cakeViewController = cakeView;
    		[cakeView release];
    	}
    	[self.navigationController pushViewController:self.cakeViewController animated:YES];
    
    	if(self.nextViewController == nil){
    		NextViewController *nextView = [[nextViewController alloc] initWithNibName:@"Test" bundle:nil];
    		self.nextViewController = nextView;
    		[nextView release];
    	}
    	[self.navigationController pushViewController:self.nextViewController animated:YES];				
    }
    
    
    
    Wäre echt toll wenn mir jemand sagen könnte wie es geht :)

    greeetz exitus


    Edit: Und ja ich habe im iPhone Dev Center unter Hilfe nachgeschaut ;) :p
     
  2. philo

    philo Roter Stettiner

    Dabei seit:
    13.10.04
    Beiträge:
    973
    Code:
    // Customize the number of rows in the table view.
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
        return 1;
    }
    }
    müsste das nicht 2 sein, wenn du eine weiter Zeile haben willst?
     
  3. exitus

    exitus Antonowka

    Dabei seit:
    29.12.07
    Beiträge:
    359
    richtig, das dachte ich nämlich auch ^^ er gibt dann nur 2 mal die gleiche zeile aus und nicht 2 verschiedene. was ich halt nicht verstehe ^^
     
  4. philo

    philo Roter Stettiner

    Dabei seit:
    13.10.04
    Beiträge:
    973
    nimm mal static weg:

    Code:
    static NSString *CellIdentifier = @"Cell";
     
  5. exitus

    exitus Antonowka

    Dabei seit:
    29.12.07
    Beiträge:
    359
    geht nicht, da mault er weil "cell" nicht deklariert ist. also die methode nicht vollständig ist.
    meno....

    willste mal den kompletten quellcode von der datei sehen? also nicht nur diesen kleinen ausschnitt ^^?
     
  6. philo

    philo Roter Stettiner

    Dabei seit:
    13.10.04
    Beiträge:
    973
    Code:
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    die ganze art, wie du die Tabelle mit o.g. methode füllst, sieht irgendwie sehr kompliziert aus.

    vor das [cell setText:mad:"Cake"]; gehört, glaube ich ein else, denn sonst wird ja immer "Cell", genommen, so wie es dir passiert. return 2 in der anderen methode muss dennoch rein.
     
  7. exitus

    exitus Antonowka

    Dabei seit:
    29.12.07
    Beiträge:
    359
    ich habe auf die sources vom Xcode zurückgegriffen und dort wurde die header datei schon so erstellt, welches man ja auch an den kommentaren sieht. in wie weit meinst du das mit der else ? komm gerade nicht ganz mit, was wahrscheinlich an der uhrzeit liegt.... (sitze schon 3 stunden vor dem problem :( )
     
  8. philo

    philo Roter Stettiner

    Dabei seit:
    13.10.04
    Beiträge:
    973
    ich rede ja von keiner header datei. poste doch mal das ganze projekt (ordner zippen) und poste es, dann geht es schneller. und dann gehe ich ins bett...
     
  9. exitus

    exitus Antonowka

    Dabei seit:
    29.12.07
    Beiträge:
    359
  10. philo

    philo Roter Stettiner

    Dabei seit:
    13.10.04
    Beiträge:
    973
    ok. gucke mal rein
     
  11. exitus

    exitus Antonowka

    Dabei seit:
    29.12.07
    Beiträge:
    359
    ok :) danke :)
     
  12. Thaddäus

    Thaddäus Golden Noble

    Dabei seit:
    27.03.08
    Beiträge:
    15.163
    Wenn du den Build Ordner löschst, dann hast du im Board keine Probleme... ;)
     
  13. exitus

    exitus Antonowka

    Dabei seit:
    29.12.07
    Beiträge:
    359
    ups.... entschuldige bitte :eek: total übersehen.... werde es mir fürs nächste mal merken ;)
     
  14. Thaddäus

    Thaddäus Golden Noble

    Dabei seit:
    27.03.08
    Beiträge:
    15.163
    Kein Problem, habe ich damals auch nicht gewusst... :)
     
  15. philo

    philo Roter Stettiner

    Dabei seit:
    13.10.04
    Beiträge:
    973
    einen moment noch...
     
  16. exitus

    exitus Antonowka

    Dabei seit:
    29.12.07
    Beiträge:
    359
    joa immer mit der ruhe, ich bekomm nur langsam ein schlechtes gewissen, da ich dich vom schlafen gehen abhalte.... ^^ sorry ;)
     
  17. philo

    philo Roter Stettiner

    Dabei seit:
    13.10.04
    Beiträge:
    973
    keine Sorge. so habe ich mich mal ein bisschen mit Tables beschäftigz ;)

    Code:
    // Customize the number of rows in the table view.
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
        return 2;
    }
    
    
    // Customize the appearance of table view cells.
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        
    	NSString *celltext = nil;
    
    	switch ([indexPath indexAtPosition:1]) {
    		case 0:
    			celltext = @"Cell";
    			break;
    		case 1:
    			celltext = @"Cake";
    			break;
    			
    		default:
    			break;
    	}
    	
    	static NSString *CellIdentifier = @"Cell";
        
        
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil) {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        }
    	[cell setText:celltext];
    
    	
        return cell;
    
    
    }
    damit zeigt er jetzt 2 verschiedene Zeilen an.
     
  18. philo

    philo Roter Stettiner

    Dabei seit:
    13.10.04
    Beiträge:
    973
    Code:
    // Customize the number of rows in the table view.
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
        return 2;
    }
    
    
    // Customize the appearance of table view cells.
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        
    	NSString *celltext = nil;
    
    	switch ([indexPath indexAtPosition:1]) {
    		case 0:
    			celltext = @"Cake";
    			break;
    		case 1:
    			celltext = @"Pic";
    			break;
    			
    		default:
    			break;
    	}
    	
    	static NSString *CellIdentifier = @"Cell";
        
        
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil) {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        }
    	[cell setText:celltext];
    
    	
        return cell;
    
    
    }
    
    // Override to support row selection in the table view.
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    
    
    	switch ([indexPath indexAtPosition:1]) {
    		case 0:
    		{
    			CakeViewController *cakeView =[[CakeViewController alloc] initWithNibName:@"Cake" bundle:nil];
    			self.cakeViewController = cakeView;
    			[cakeView release];
    			[self.navigationController pushViewController:self.cakeViewController animated:YES];
    
    			break;
    		}
    		case 1:
    		{
    			NextViewController *nextView = [[NextViewController alloc] initWithNibName:@"nextView" bundle:nil];
    			self.nextViewController = nextView;
    			[nextView release];
    			[self.navigationController pushViewController:self.nextViewController animated:YES];				
    
    			break;
    		}
    		default:
    			break;
    	}
    	
    	
    	
    //	if(self.cakeViewController == nil){
    //		CakeViewController *cakeView =[[CakeViewController alloc] initWithNibName:@"Cake" bundle:nil];
    //		self.cakeViewController = cakeView;
    //		[cakeView release];
    //	}
    //	[self.navigationController pushViewController:self.cakeViewController animated:YES];
    //
    //	if(self.nextViewController == nil){
    //		NextViewController *nextView = [[NextViewController alloc] initWithNibName:@"nextView" bundle:nil];
    //		self.nextViewController = nextView;
    //		[nextView release];
    //	}
    //	[self.navigationController pushViewController:self.nextViewController animated:YES];				
    }
    nochmal neu.

    EDIT: sind nur drei Methoden verändert. Ersetzte die und sag mal es läuft.
    EDIT2:

    // if(self.cakeViewController == nil)
    // if(self.nextViewController == nil)

    könnten vielleicht noch rein, damit nicht jedes mal das nib neu geladen werden muss.
     
    exitus gefällt das.
  19. exitus

    exitus Antonowka

    Dabei seit:
    29.12.07
    Beiträge:
    359
    wow danke ! ich werde das direkt mal testen :)

    echt spitze von dir :) vielen dank für die mühe :)

    Edit: Boar spitze ! du bist mein held :) klasse ! vielen vielen dank ! nun werde ich mir das von dir zusammen gebaute genaustens angucken und studieren :)

    und dann mal schauen ob ich noch weitere case's einfügen kann :p nochmals vielen dank :)

    und wünsche nun eine gute nacht :)
     
  20. philo

    philo Roter Stettiner

    Dabei seit:
    13.10.04
    Beiträge:
    973
    Code:
    //[cell setText:celltext];textLabel
    [cell.textLabel setText:celltext];
    bitte. und wenn du das oben noch änderst, zeigt er sogar keine Warnung mehr an. (setText war veraltet)

    schau dir auch mal an, wie NSIndexPath funktioniert. Wenn du auf "help" in XCode gehst, siehst du den Punkt Documentation, da findest du alle Klassen mit ihren Properties und Methoden...falls du es noch nicht wusstest.

    Gute Nacht ebenfalls!
     

Diese Seite empfehlen