Реализация табличного представления в контроллере панели вкладок? - PullRequest
11 голосов
/ 13 февраля 2011

Я начинаю с изучения табличных представлений. Мои приложения используют контроллер панели вкладок, и все вкладки представляют собой простые представления. Я хочу добавить еще одну вкладку, и в этой вкладке я пытаюсь реализовать контроллер навигации в стиле таблицы. Из того, что я читаю, эти представления нуждаются в контроллере UINavigation как Root View Controller, однако мой контроллер панели вкладок уже настроен как мой Root View Controller, так что я немного запутался.

Может кто-нибудь объяснить, что я должен делать, чтобы реализовать что-то вроде этого.

Ответы [ 2 ]

17 голосов
/ 13 февраля 2011

Это хороший вопрос, с которым всегда сталкивается большинство разработчиков, незнакомых с Cocoa.Вам нужно подумать об архитектуре вашего приложения, чтобы увидеть, что будет наиболее подходящим для ваших требований, но в большинстве случаев вы захотите, чтобы TabBarController был основным / корневым контроллером, обслуживающим другие представления, а затем оттуда настройте представления tabItem.в зависимости от того, какие данные вам нужно отображать.

В вашем конкретном случае, когда вы создаете новый элемент вкладки, вместо того, чтобы обслуживать UIViewController для этого представления tabItem, вы хотите использовать контроллер навигации.Затем под контроллером навигации вы сможете назначить его корневой контроллер представления, который должен быть экземпляром UITableViewController (или UIViewController с экземпляром UITableView, если вам требуется больше, чем UITableView в вашем представлении).

Таким образом, иерархия выглядит примерно так

1 - TabBarController

1.1 ----- NavigationController

1.1.1 -------UITableViewController

1.1.1 ------- Другие представления в вашем стеке контроллеров

1.2 ----- Любые другие представления на вкладке BarController

А вот хороший видеоурок, который поможет вам в этом: http://www.youtube.com/watch?v=LBnPfAtswgw

Удачи, Рог

1 голос
/ 13 февраля 2011

Прежде всего, табличные представления не обязательно должны быть встроены в контроллеры навигации. В большинстве случаев они есть, но это не является обязательным требованием.

Чтобы добавить табличное представление, вы должны создать UITableViewController (или универсальный UIViewController со встроенным UITableView, это зависит от ваших потребностей) и поместить его в свойство UITabBarController viewControllers. Например:

UIViewController *vc1 = [[FirstViewController alloc] init];
UIViewController *vc2 = [[SecondsViewController alloc] init];
UITableViewController *tableVC = [[UITableViewController alloc] init];
tabBarController.viewControllers = [NSArray arrayWithObjects:vc1, vc2, tableVC, nil];

Конечно, вышеприведенные контроллеры представления должны быть конкретными подклассами, чтобы вы могли реализовать свои собственные представления и логику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...