1) Вы не можете добавить классы контроллера представления в двух местах, потому что во время компиляции один и тот же символ (то есть имя класса) будет найден в двух местах, и приложение не будет ссылаться.
2)Я бы сказал, что самым безопасным способом было бы иметь другой .xib, но если вы хотите, чтобы он работал просто из кода, вы могли бы создать менеджер одноэлементных представлений, который выполняет только правильную загрузку классов.Затем, в остальной части вашего кода, все, что вам нужно сделать, это: [MyViewManager sharedInstance] instantiateViewController:kMyDetailsView]
и отобразить представление по вашему желанию.
Для определения текущего устройства вы можете использовать следующее утверждение: #define iPad [UIDevice currentDevice].userInterfaceIdiom==UIUserInterfaceIdiomPad
.Он может быть включен в файл префикса, что делает его доступным для всего проекта.