У Вас не получится так сделать. Storyboard всегда грузит указанный в свойствах класс. И даже попытки поиграться с рантаймом не дают никакого эффекта: я пробовал переопределять initWithCoder и возвращать класс наследник. Приложение падает с пометкой, что ожидается другой класс на выходе. Т.е. после загрузки storyboard проверяет что бы все было чин чином...
Что можно сделать, что бы решить Вашу проблему:
- создавать вьюшку для viewController'a кодом (-loadView), т.е. отказаться от Storyboard. Субьективно, не самое лучшее решение.
- В самом storyboard продублировать viewController, указав нужный класс для него. Самое быстрое решение, но Вам прийдется поддерживать по сути два одинаковых представления. Если позже нужно будет допиливать проект, то Вы очень обрадуетесь:)
- использовать xib для таких дублирующихся viewController'ов. Насколько я помню initWithNib позволит корректно загрузить вьюшку в класс наследник. Неуверен в этом, правда...
- сделать Add view controller контейнером, содержащим DetailController. Т.е. Загружать detailController из storyboard'a и добавлять его посредством addSubview в AddViewController. Или еще одно извращение из той же оперы , вытащить из этого загруженого DetailViewController'a саму вьюшку, установивть корректно outlets и actions и убить загруженный вью контроллер. У меня так получилось, но это все от лукавого.