2016-08-12 3 views
0

У меня есть пользовательский tableView с заголовком и некоторыми разделами. Я использую вкладки между тремя viewControllers. ViewController с tableView - это моя домашняя страница приложения. Когда я впервые открываю приложение, все в порядке. Но если я прокручу вниз по моему tableView, а затем перейду к другому viewController, используя вкладку и вернусь на главный экран, TableView представлен в разделе, где я ушел. Я хочу, чтобы он был представлен заголовком (мой viewController должен быть представлен сверху, а не в середине). Вот скриншоты.Представление TableView с заголовком вместо средней секции или нижнего колонтитула

Это мой домашний экран

enter image description here


И если я прокручиваю вниз, как ниже

enter image description here

и перейти к следующему экрану, используя ниже TabBar


enter image description here

Это то, что я получаю, когда я вернусь на домашний экран


enter image description here

Должно ли оно быть представлено так же, как в первый раз?

+1

Это происходит потому, что контроллер панели вкладок не перезагружает представление таблицы еще раз. Возможно, вам потребуется прокрутить таблицу TableView, когда кто-то переключит вкладку на ваш домашний контроллер. – Harsh

ответ

1

В вашей первой вкладке viewControllers, добавьте следующий код внутри метода viewWillAppear().

+0

он работал благодаря – Byte

+1

, если вы используете 'scrollToRowAtIndexPath', он может упасть, если у вас нет этого' indexPath', поэтому я даю вам ответ с 'setContentOffset'. Если ваш tableView не имеет данных, то он также не будет разбиваться. –

+0

ohh спасибо за пояснение :-) – Byte

1

Что вы могли бы сделать это, реализовать делегат

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 

Сейчас в этом делегатом, когда выбран контроллер домашнего просмотра, получить доступ к табличному и прокручивать его в ор программно.

Смежные вопросы