Let me tell you the reason.
In a previous edition, Window-based Application was used to create multi-view applications. But in Xcode 4.2, the window application no longer exists. An empty application is designed to create a multidisciplinary program.
The difference between Window-based Application and Empty Application is that in the first there is the main window MainWindow.xib.
When the program starts, iPhone first creates the main window. Content in MainWindow will be uploaded and built. But if you want more features, such as multi-view, you still have a new root view controller. The root view controller can help manage the views in your program. In the new edition of Xcode 4.2, the root view controller is expected.
In the new edition in the Empty Application, the MainWindow.xib file is missing. Instead, AppDelegate creates a window. And he wants a root view controller. Thus, the best way is to subclass the UIViewController with the XIB for the interface for MainWindow. But in the old edition XIB is not needed.
It happened? Without a root view controller, you will not get an error, but you are unlikely to be able to do anything without it. This is why a warning always appears.
source share