PDA

View Full Version : Dismissing modal view controller stops button animating




RossOliver
Apr 11, 2008, 09:42 AM
Hey,

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,

-Ross



rr299
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