2009-08-23 8 views
0

Ich bin ein bisschen verwirrt, warum der untenSubview nicht funktioniert.addSubview insertSubview überSubview Bit verwirrt, warum es nicht funktioniert

Ich füge einige (Subviews) zu meinem NavigationController und all das funktioniert gut.

fügen Sie einen Punkt in meiner App hinzu Ich möchte eine andere Symbolleiste oder ein Bild über meiner Symbolleiste hinzufügen.

also lassen Sie uns sagen, ich mache so etwas wie dieses

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
    ... 
    ... 

     [self.navigationController.view insertSubview:NewImageView aboveSubview:toolbar]; 
//crucial of course [edit] 
      rvController = [RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle] mainBundle]; 
rvController.CurrentLevel += 1; 
rvController.CurrentTitle = [dictionary objectForKey:@"Title"]; 
[self.navigationController pushViewController:rvController animated:YES]; 
rvController.tableDataSource = Children; 
[rvController release]; 

aber das funktioniert nicht .. Weiß jemand, was ich falsch hier tun ... Sollte ich verwendet habe, etwas anderes anstelle von addSubview oder ist das Problem woanders?

Antwort

1

Von dem, was Sie gepostet haben, sieht es so aus, als ob das funktionieren sollte.

Es gibt jedoch ein paar andere Probleme. Erstens ist es Konvention, dass Variablen, die Instanzen von Objekten darstellen, mit Kleinbuchstaben beginnen. So sollten ImageView und NewImageViewimageView und newImageView sein.

Ich würde sicherstellen, dass in Ihrer tableView:didSelectRowAtIndexPath: Methode newImageView und Symbolleiste beide gültig sind. Sind sie in Ihrer Header-Datei?

die Sie interessieren und sehen, wo Fehler ist out:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
... 
... 
    NSAssert(self.navigationController.view,@"WTF? self.navigationController.view is nil"); 
    NSAssert([self.navigationController.view superview],@"WTF? lf.navigationController.view is not onscreen"); 
    NSAssert(newImageView,@"WTF? newImageView is nil"); 
    NSAssert(toolbar,@"WTF? toolbar is nil"); 
    NSAssert([toolbar superview],@"WTF? toolbar is on in the view"); 

    [self.navigationController.view insertSubview:newImageView aboveSubview:toolbar]; 
} 
+0

Vielen Dank für Ihre Reaktion .. Sie hatten Recht, es ist nichts falsch mit Ich habe gerade einen kleinen Fehler;), die Sie in meinem bearbeiten sehen können. Ich schob einen neuen viewController ... –

+0

Versuchen Sie, Ihr neues Bild/Symbolleiste über der Symbolleiste auf dem ursprünglichen Bildschirm oder dem neuen, der angezeigt wird? oder beides? –

Verwandte Themen