View Full Version : Dismissing modal view controller stops button animating

Apr 11, 2008, 09:42 AM

I have a UIViewController that puts a '+' button on its UINavigationBar:

-( void )addItem
[self presentModalViewController:[[UINavigationController alloc] initWithRootViewController:[[AddItemModalViewController alloc] init]] animated:YES];

-( void )loadView
// Set up navigation buttons.
UIButton *addButton = [[UIButton buttonWithType:UIButtonTypeNavigation] retain];
[addButton setImage:[UIImage imageNamed:@"plus.png"] forStates:( UIControlStateNormal & UIControlStateHighlighted )];
[addButton addTarget:self action:@selector( addItem ) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.customRightView = addButton;
[addButton release];

// Create a custom view hierarchy.
UIView *view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
self.view = view;
[view release];

When the '+' button is hit, the modal view controller is loaded. The controller has a button to cancel, which dismisses the modal view controller and returns to the previous UIViewController:

-( void )cancel
[self dismissModalViewControllerAnimated:YES];

-( void )loadView
// Add button to cancel.
UIButton *cancelButton = [[UIButton buttonWithType:UIButtonTypeNavigationBack] retain];
[cancelButton setTitle:@"Cancel" forStates:( UIControlStateNormal & UIControlStateHighlighted )];
[cancelButton addTarget:self action:@selector( cancel ) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.customLeftView = cancelButton;
[cancelButton release];

// Construct the table view for adding an item.
tableView = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame] style:UITableViewStyleGrouped];
tableView.delegate = self;
tableView.dataSource = self;

// Set as main view.
self.view = tableView;

The problem I am having is that once the modal view controller is called and dismissed, calling it again by hitting the '+' button works, but the button itself doesn't do the little animation of being pushed down...

Not the end of the world but it is driving me mad - has anyone else experienced this? From what I can see I've done everything correctly by the sample code in apples demo programs, but they seem to work so I guess I went wrong somewhere :-/

Thanks for your time,


Jul 2, 2010, 08:42 AM
I know this was ages ago but did you figure out what the problem was? I am having a similar issue! Thanks