Вам действительно следует рассмотреть возможность использования UIViewController вместо непосредственного использования nib и представлений, так как они соответствуют модели mvc и, в общем, упрощают вашу жизнь.
Затем вы создадите подкласс tableView: didSelectRowAtIndexPath: метод и откроете контроллер представления следующего уровня, каким бы он ни был, в зависимости от выбранной ячейки.