2009-06-13 5 views
1

Ich erstelle einen UIViewController mit einer Schaltfläche darauf. Die einzige Aufgabe der Schaltfläche besteht darin, ein Fenster zum Zeichnen einiger Rechtecke zu erstellen. (Ich habe etwas Code von "QuartzDemo" von Apples Beispielanwendungen genommen.) Objective C gibt mir wirklich Fit ...pushViewController Problem

Wenn ich das versuche, passiert nichts.

Hier ist der Code für die Schaltfläche:

- (IBAction)startButtonAct:(id)sender 
{ 
    QuartzViewController *controller; 

    NSLog(@"1"); 
    controller = [[QuartzViewController alloc] initWithTitle:@"Dotsie"]; 
    controller.quartzViewDelegate = [[[RectDrawing alloc] init] autorelease]; 
    [[self navigationController] pushViewController:controller animated:YES]; 
    // [controller release]; 

} 

ich ehrlich bin nicht sicher, was sonst noch jemand sehen muss, aber hier ist einige der anderen Sachen:

@interface QuartzViewController : UIViewController 
{ 
    QuartzView *quartzView; 
    UIBarStyle barStyle; 
    UIStatusBarStyle statusStyle; 

} 


@protocol QuartzViewDelegate; 

@interface QuartzView : UIView { 

id<QuartzViewDelegate> delegate; 

} 

@property(assign) id<QuartzViewDelegate> delegate; 

@end 

@protocol QuartzViewDelegate<NSObject> 

@required 

// Draw contents into the given view, using the given context and bounds. 
-(void)drawView:(QuartzView*)view inContext:(CGContextRef)context bounds:(CGRect)bounds; 

@end 

Bitte helfen - Das macht mich verrückt - ich habe jetzt seit einer Woche mit dem gleichen grundlegenden Problem gekämpft ...

Antwort

1

Zuerst sollte die Zeile [Controller Release] da sein, unkommentiert. Ich bin sicher, dass Sie es nur zum Debuggen deaktiviert haben.

Wenn Sie die Zeile ein:

NSLog(@"%@", [self navigationController]); 

In Ihrer Button-Aktion, einen gültigen Controller anmeldet oder nil sagt? Wenn es nichts ist, würde ich meinen, dass dieser View-Controller nicht richtig auf einen Navigations-Controller selbst geschoben wurde.