Вы говорите
Я использую подклассы UITable UITableViewController
Полагаю, вы используете UITableViewController с подклассами, который, естественно, содержит UITableView.
Ваша проблема вызвана тем фактом, что вы вставили панель навигации в UITableView или, точнее, в UIScrollView, который является частью TableView.
В зависимости от ваших потребностей у вас есть два варианта:
- Если вы хотите, чтобы ваше приложение вело себя, например, как Почта (т. Е. Ваш TableView будет только одним элементом в структуре представлений, с помощью которого вы можете копать), вам нужно UINavigationcontroller и сделать ваш TableViewController первым представлением NavigationController, как, например, когда вы открываете шаблон «Navigation based» в Xcode , Контроллер UINavigation уже будет содержать панель UINavigationBar, поэтому вам не о чем беспокоиться.
- Если по какой-то причине это не то, что вам нужно, вам придется создать UIView, который содержит UINavigationBar, а также UITableView. Поскольку выполнение такой настройки с помощью UITableViewController, как известно, довольно сложно, вы можете отказаться от вашего TableViewController и заменить его на простой ViewController, который реализует как UITableViewDelegate, так и UITableViewDataSource -Delegate. См. этот пост для получения дополнительной помощи.