Поместить контроллер просмотра в ViewController панели вкладок

#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.

Или в коде просто добавьте контроллер панели вкладок с этими тремя контроллерами, установленными в качестве контроллеров просмотра.