views:

97

answers:

2

Hi.

I'm realizing what a newbie I still am with this problem I have. I am trying to present a modal window in a project I am working on and it's not appearing. My solution was then to create an absolute basic project and get it working there first, so I would clearly understand my problem, but I can't get even this working :(

I add a ViewController to the MainWindow at applicationDidFinishLaunching. In this ViewControllers XIB, I have a button. The ViewController has the following header:

#import <UIKit/UIKit.h>
#import "ModalView.h"

@interface ViewBasedViewController : UIViewController {
    ModalView *modalView;
}

- (IBAction)dooooIt :(id)sender;

@property (nonatomic, retain, readonly) ModalView *modalView;

@end

And methods:

#import "ViewBasedViewController.h"

@implementation ViewBasedViewController

@synthesize modalView;

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];

}

- (void)viewDidUnload {
}


- (void)dealloc {
    [super dealloc];
    [modalView release];
}

- (ModalView *)modalView {
    if (modalView == nil) {
        modalView = [[ModalView alloc] initWithNibName:@"ModalView" bundle:nil];
    }
    return modalView;
}

- (IBAction)dooooIt :(id)sender {

    [self.navigationController presentModalViewController:modalView animated:YES];

}

@end

I'm obviously missing something very simple and I believe it's between my ears at this stage :)

Does anyone want to put a poor fella out of his misery?

Many Thanks

Chris

A: 

Have you connected the button to the IBAction? Control-drag in Interface Builder from your button to the "File's Owner" icon in your XIB file, and select the "dooooIt" method there. Recompile and your code should execute as expected.

Adrian Kosmaczewski
Thanks very much but Yes, it is - I actually have the dubber Breaking at the presentModalViewController message to ensure the line is being called.
Chris
dubber=debugger!
Chris
A: 

For those that may come across this problem and were as baffled as I was, I fell over the solution. There was two problems in the dooooIt method:

- (IBAction)dooooIt :(id)sender {
    [self presentModalViewController:self.modalView animated:YES];

}

I should have included 'self' when referring to the modalView property (otherwise it's nil) and I shouldn't have referred to the navigationController as I had none hooked up.

Hope this helps any of you (amazing what a glass of wine can do! :)

Chris