проблема pushViewController - PullRequest
1 голос
/ 14 июня 2009

Я создаю UIViewController с кнопкой на нем. Единственная задача кнопки - создать окно для рисования прямоугольников. (Я взял некоторый код из «QuartzDemo» из примеров приложений Apple.) Цель 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 Ответ

1 голос
/ 14 июня 2009

Во-первых, строка [релиз контроллера] должна быть там, без комментариев. Я уверен, что вы просто отключили его для отладки.

Если вставить строку:

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

В вашем действии кнопки он регистрирует действительный контроллер или он говорит ноль? Если это ноль, я предполагаю, что этот контроллер представления не был должным образом помещен в сам контроллер навигации.

...