Here is the viewDidLoad:
[self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bg.png"]]];
It can display the simulator, but not on the device, why? THz.
Also check that the image is not a PSD with a PNG extension. The simulator can show PSD images, the device cannot. :)
The device is case sensitive, so make sure you have bg.png for sure.