Although the question is marked as answered, I don't really see the answer that was asked for...
Usually the code itself specifies the relation when creating a view controller, like so:
MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
That tells the system to create the view controller instance, and look for "MyView.xib" to load and wire to MyViewController - MyViewController would also have been set to file's owner in the XIB.
Now another way to relate your view controller and the xib, is that in some cases you are actually creating view controller instances in a xib. The tab bar controller is a great example, where for a tab you specify a view controller instance to create, along with the nib name that it will use.
Note this means you can have several xib files that make use of a single view controller, if you want the same controller to with with different kinds of screens. You don't end up doing that often but it can be powerful, when used correctly (it can also be a mess if you try to make one view controller that does too many things).