pushViewController问题

时间:2009-06-13 23:11:58

标签: iphone graphics delegates quartz-graphics

我创建了一个带有按钮的UIViewController。按钮的唯一作用是创建一个用于绘制一些矩形的窗口。 (我从Apple的示例应用程序中获取了“QuartzDemo”中的一些代码。)Objective C真的很适合我......

当我尝试这个时,没有任何反应。

以下是按钮的代码:

- (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];

}

老实说,我不确定还有什么人需要看到,但这里有一些其他的东西:

@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

请帮助 - 这让我发疯了 - 我一直在与同样的基本问题作斗争一周......

1 个答案:

答案 0 :(得分:1)

首先,[控制器发布]行应该在那里,取消注释。我确定你只是禁用它进行调试。

如果您插入以下行:

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

在你的按钮动作中,它是否记录了一个有效的控制器或是否为nil?如果它是零,我的猜测是这个视图控制器没有正确地推到导航控制器上。