SalsaSalsa
SalsaSalsa

Reputation: 139

Pressing UIButton pushes new view onto navigation stack

I currently have a window with a view attached that has three UIButtons. When the user presses a button, I would like the view to change to a new view using a NavigationController.

So right now I have the about button coded like so:

UIButton *aboutButton = [UIButton buttonWithType:UIButtonTypeCustom];
aboutButton.frame = CGRectMake(236, 240, 60, 60);
[aboutButton setImage:[UIImage imageNamed:@"About.png"] 
    forState:UIControlStateNormal];
[aboutButton addTarget:self action:@selector (aboutButtonPressed) 
    forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:aboutButton];

And for the action function:

-(void)aboutButtonPressed {
    UINavigationController *aboutView =[[UINavigationControlleralloc] initWithNibName:@"About" bundle:nil];
    [self.navigationController pushViewController:aboutView animated:YES];
    [self.view addSubview:aboutView.view];
    [aboutView release];
}

The About.xib file currently has nothing in it.

Now on to the problem... When the button is pressed a top navigation bar appears at the top but not in the animated sense like I have it coded. It just pops up. Also there is no back button to return to the view with the buttons on them. What am I doing wrong? I can provide more code or details if this is not clear enough.

Edit: Here is a picture to better understand what is happening.

After clicking the about button:

http://dl.dropbox.com/u/1481176/Screen%20shot%202010-12-09%20at%2011.28.40%20AM.png

Edit 2: Removed some wonky code for a back button that shouldn't of been there.

Upvotes: 1

Views: 1709

Answers (1)

willcodejavaforfood
willcodejavaforfood

Reputation: 44073

Most of the code after pushViewController looks dodgy.

-(void)aboutButtonPressed {
    AboutViewController *aboutView =[[AboutViewController **alloc**] initWithNibName:@"About" bundle:nil];
    [self.navigationController pushViewController:aboutView animated:YES];
    [aboutView release];
}

That should at least push your empty view onto the stack and give you a back button automatically.

Upvotes: 1

Related Questions