if you want to access the property, you should use
self.statusText.text = ....
you can also access the variable directly using _statusText:
_statusText.text = ....
If you remove _statusText from the synthesize line, the instance variable name will be assumed to be "statusText", so that is why your situation works when you remove it.
@synthesize statusText
....
statusText.text = [NSString stringWithFormat:@"%@ button pressed.", title]; // this works
IMO you should always access it as a property (e.g. self.statusText) except in init/dealloc since you are declaring it as such.