The BAD_ACCESS error means that you are releasing an object that another function is currently using. Run your code like this:
AddConversationViewController *addController = [[AddConversationViewController alloc]
initWithNibName:@"AddConversationViewController" bundle:nil];
//addController.delegate = self;
UINavigationController *navigationController = [[UINavigationController alloc]
initWithRootViewController:addController];
[self presentModalViewController:navigationController animated:YES];
[addController release];
NSLog(@"After addController released");
[navigationController release];
NSLog(@"After navigationController released");
This adds some console messages before you release each of your objects. If you see After addController released in your console, you know that [addController release]; is not causing your crash. If you see both of those console messages, you know that none of those statements are causing a crash, but most likely, one of those 2 release statements is causing the crash. I am thinking that the [navigationController release]; statement is causing your crash because you need that to move views via your navigationController. If you remove that line, you shouldn't crash. Removing addController shouldn't cause a crash because you just made that to move the view and it doesn't do anything else. If you have any further questions, please feel free to ask me about them.