как структурировать мои объекты при использовании uinavconttroller и uitabbar - PullRequest
2 голосов
/ 19 июля 2011

Я пытаюсь понять, какова правильная структура объектов при использовании uinavigationcontroller с панелью вкладок.

Я хочу, чтобы мое приложение имело следующую структуру: экран приветствия / входа в систему -> 3 вкладки панели.

У меня есть следующие объекты / классы:

  • AppDelegate
  • WelcomeViewController
  • TabController
  • FirstTab
  • SecondTab
  • ThirdTab

Я также создал контроллер uinavcontroller под WelcomeViewController, когда пользователь нажимает «войти» в приложение:

-(IBAction)aMethod:(id)sender {

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
FirstView *controller = [[FirstView alloc] initWithNibName:@"FirstView" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:controller];
self.window.rootViewController = self.navigationController;
 navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:navigationController animated:YES]; 
}

Мой вопрос - как мне управлять панелью вкладок - где я должен объявить каждую из ее частей, и мне нужно будет создать контроллер uitabbar в этом случае (в этом случае, где?)).

Я очень озадачен тем, как разместить объявления, относящиеся к различным панелям вкладок, и ни один из примеров / руководств, которые мы там нашли, не смог уточнить это для меня.

Кстати - я запустил это приложение из приложения, основанного на представлении.

Спасибо!

1 Ответ

2 голосов
/ 20 июля 2011

Вы можете установить это в коде или использовать конструктор интерфейса.

Я предпочитаю метод конструктора интерфейса, поскольку вы можете визуально видеть структуру ваших контроллеров представления.

Вот как я это делаю ...

  1. В вашем AppDelegate.h добавьте свойство

    @property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
    
  2. В вашем AppDelegate.m в первую очередьСинтезируйте свойство

    @synthesize tabBarController  = _tabBarController;
    
  3. Установите метод application:didFinishLaunchingWithOptions:, чтобы он выглядел примерно так (вы можете проделать больше работы с этим методом)

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    {    
    
        [self.window addSubview:self.tabBarController.view];
        [self.window makeKeyAndVisible];
    
        return YES;
    }
    
  4. В MainWindow.xib перетащите объект Tab Bar Controller в область объектов (здесь находятся ваши объекты AppDelegate и Window).enter image description here

  5. Ctrl + Перетащите курсор с объекта AppDelegate на Tab Bar Controller и выберите только что созданное нами свойство.enter image description here

ПРИМЕЧАНИЕ. Теперь у нас есть Tab Bar Controller, настроенный и готовый к работе.

В качестве примера должны быть настроены две вкладки.Если вы просто хотите использовать подклассы UIViewController, просто измените классы этих объектов, чтобы они представляли ваши подклассы UIViewController.

enter image description here

Если вы хотите использовать UINavigationController, перетащите объект UINavigationController на объект Tab Bar Controller.

enter image description here

Теперь нажмите треугольник раскрытия на UINavigationController и измените класс его ViewController, чтобы он стал вашим подклассом UIViewController.enter image description here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...