我创建了一个带有按钮的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
请帮助 - 这让我发疯了 - 我一直在与同样的基本问题作斗争一周......
答案 0 :(得分:1)
首先,[控制器发布]行应该在那里,取消注释。我确定你只是禁用它进行调试。
如果您插入以下行:
NSLog(@"%@", [self navigationController]);
在你的按钮动作中,它是否记录了一个有效的控制器或是否为nil?如果它是零,我的猜测是这个视图控制器没有正确地推到导航控制器上。