#iphone #objective-c #tabbarcontroller
#iPhone #objective-c #tabbarcontroller
Вопрос:
Я создаю уже три контроллера просмотра и хочу просто добавить эти контроллеры просмотра в tabBarview controller. Контроллер просмотра находится ниже
Сначала -> Страница входа
Второй -> Контроллер просмотра панели вкладок
1)---> Employee View controller
2)---> Task View Controller
3)----> Home View controller
Я создаю три отдельных контроллера просмотра. Я хочу добавить их в контроллер панели вкладок, используя Interface Builder или coding.
Ответ №1:
Вы можете найти более наглядный пример из документов Apple — Комбинированные интерфейсы контроллера просмотра
Я предполагаю, что страница входа в систему является вашим корневым контроллером просмотра здесь. Где _tabBar
, _window
и _loginvVewController
глобально объявлены в файлах заголовков AppDelegate. Вы также можете использовать _loginvVewController
локально внутри didFinishLaunchingWithOptions
метода, в зависимости от ваших требований.
AppDelgate.h
UIWindow *_window;
UITabBarController *_tabBar;
LoginViewController *_loginvVewController;
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
self.loginvVewController = [[LoginViewController alloc] init];
// Add the tab bar controller's current view as a subview of the window
[self.window addSubview:self.loginvVewController.view];
[self.window makeKeyAndVisible];
return YES;
}
- (void)initializeTabbar {
/*
* Set up controllers for the tab bar controller
*/
EmployeeViewController *vc1 = [[[EmployeeViewController alloc] initWithTitle:@"View 1"] autorelease];
TaskViewController *vc2 = [[[TaskViewController alloc] initWithTitle:@"View 2"] autorelease];
HomeViewController *vc3 = [[[HomeViewController alloc] initWithTitle:@"View 3"] autorelease];
// View Controller with each Navigational stack support.
UINavigationController *navController = [[UINavigationController alloc]
initWithRootViewController:vc1];
/*
* Set up tab bar controller
*/
self.tabBar = [[UITabBarController alloc] init];
self.tabBar.viewControllers = [NSArray arrayWithObjects:navController, vc2, vc3, nil];
[self.window addSubview:self.tabBar.view];
}
В моем быстром хакатоне по этой проблеме я использовал кнопку «Нажмите здесь!» на странице входа в систему — как только вы нажмете на нее, вы попадете внутрь приложения с помощью панели вкладок. Если вам нужен пример проекта, напишите мне по адресу d3minem@gmail.com .
После многих запросов по электронной почте — я создал демонстрационный проект и загружаю здесь. https://github.com/Deminem/SimpleTabbarApp—iPhone —
Пожалуйста, проголосуйте, если найдете это полезным.
Удачи!
Комментарии:
1. это дает черный экран. что я могу сделать, не могу понять.
Ответ №2:
Лучшим способом было бы создать приложение на основе TabBarContoller и добавить ViewControllers в TabbarViewController.
Комментарии:
1. Создание контроллера панели вкладок и его настройка занимает гораздо меньше времени, чем открытие совершенно нового проекта и импорт всего существующего кода и перенастройка параметров сборки и т. Д…
Ответ №3:
Путь прост.
В IB разместите свой контроллер панели вкладок там, где вам нравится, сделайте его состоящим из трех страниц и задайте их классы view controller.
Или в коде просто добавьте контроллер панели вкладок с этими тремя контроллерами, установленными в качестве контроллеров просмотра.