Использование init
может работать, но я бы порекомендовал простой подкласс UINavigationController
.Создайте новый метод с именем setRootTableViewController:(UITableViewController *)controller
или что-то в этом роде.В реализации метода вызовите это:
[controller.tableView reloadData];
[self pushViewController:controller animated:NO];
reloadData
вызовет все ваши делегаты и методы источника данных и использует их для обновления таблицы.Если вы хотите вместо этого вызывать специальный вызов метода в вашем контроллере табличного представления, вы можете изменить объявление метода на setRootTableViewController:(CustomTableViewController *)controller
(или как называется ваш пользовательский контроллер таблиц) и заменить строку reloadData
на строку, которая вызывает этот метод.
Затем в вашем делегате приложения вместо создания UINavigationController
и добавления своего настраиваемого контроллера представления создайте один из них и вызовите этот метод для добавления первого представления.
Однако, есливы используете перо, чтобы установить rootViewController
, вы можете просто переопределить initWithRootViewController:(UIViewController *)controller
, так как я представляю, что это будет то, что перо будет вызывать для установки первого представления в стеке:помогает!