Вы не можете создать экземпляр "UIViewController" с произвольными NIB, вы должны создать экземпляр "[независимо от того, какой у вас пользовательский класс контроллера представления]" с NIB для этого класса.
Это сбой, потому что он пытается получить доступ к свойствам, которые не существуют в UIViewController.
Если вы хотите выполнить такой вид динамической загрузки контроллера представления, вам нужно проделать немного больше работы и использовать специальный метод класса Class, который позволяет вам создавать экземпляр объекта, используя строку для имени класса, а не hard -coded.
Что-то вроде:
Class viewControllerClass = NSClassFromString( nibVar );
UIViewController* aController = (UIViewController*) [[viewControllerClass alloc] initWithNibName:nibVar bundle:nil];