У меня была похожая путаница с примером кода Apple TaggedLocations, хотя в моем случае я понял, что моим табличным представлением управляет подкласс UIViewController, а не подкласс UITableViewController, и UITableViewController, очевидно, управляет прокруткой для вас.Он работает довольно хорошо, поэтому многие из этих сложных расчетов не нужны.Хотел бы я не тратить так много времени, пытаясь понять их.
Я не понимаю, почему иерархия, которую вы описываете, имела бы значение.Пока UITableViewController управляет текстовыми полями, он должен автоматически заботиться о прокрутке, чтобы избежать клавиатуры.