Объединение двух приложений для iPhone (1 ViewController, 1 TabBarController) - PullRequest
0 голосов
/ 25 октября 2010

В настоящее время я работаю над приложением, в котором я делаю каталог, который будет содержать различные продукты. До сих пор я сделал свое меню запуска, которое включает три кнопки (одна для каталога, одна для настроек и одна для инструкций). При нажатии кнопки каталога приложение переключается на CatalogueViewController, и именно из этого ViewController должен запускаться каталог.

Помимо меню запуска, я написал приложение для каталога в другом отдельном приложении. Приложение каталога сделано с TabBarController, в то время как меню запуска сделано с обычными ViewController. Мой следующий шаг - объединить эти два приложения, чтобы при нажатии кнопки каталога открывался каталог.

До сих пор, когда я нажимаю кнопку каталога, я создаю экземпляр моего UICatalogueTableViewController, который является подклассом UITableViewController, и загружаю вместе с ним мой CatalogueView.xib.

Файл заголовка ViewController, который управляет отображением вида:

@class MenuViewController;
@class UICatalogueTableViewController;
@class SettingsViewController;
@class InstructionsViewController;

@interface IkeaViewController : UIViewController {
    MenuViewController *menuViewController;
    UICatalogueTableViewController *catalogueViewController;
    SettingsViewController *settingsViewController;
    InstructionsViewController *instructionsViewController;
}

@property (retain, nonatomic) MenuViewController *menuViewController;
@property (retain, nonatomic) UICatalogueTableViewController *catalogueViewController;
@property (retain, nonatomic) SettingsViewController *settingsViewController;
@property (retain, nonatomic) InstructionsViewController *instructionsViewController;

-(IBAction)catalogueButtonPressed:(id)sender;
-(IBAction)settingsButtonPressed:(id)sender;
-(IBAction)instructionsButtonPressed:(id)sender;

@end

Метод, который вызывается при нажатии кнопки каталога:

- (IBAction)catalogueButtonPressed:(id)sender{
    if (self.catalogueViewController.view.superview == nil) {
        if (self.catalogueViewController == nil) {
            UICatalogueTableViewController *catalogueController = [[UICatalogueTableViewController alloc]initWithNibName:@"CatalogueView" bundle:nil];
            self.catalogueViewController = catalogueController;
            [catalogueController release];
        }
        [menuViewController.view removeFromSuperview];
        [self.view addSubview:catalogueViewController.view];
    }
}

Внутри моего файла .xib (CatalogueView.xib) я создал объект TabBarController, и у владельца моего файла для его идентификатора класса установлено значение UICatalogueTableViewController, но мне кажется, что я не могу соединить их, так что при запуске TabBarController отображается приложение. Владелец файлов требует просмотра.

При нажатии кнопки настроек или инструкций в моем меню автозагрузки не возникает проблем при создании экземпляра их ViewController и загрузке файлов .xib, поскольку они содержат только одно представление для отображения.

Как перейти из моего меню запуска (обычный ViewController) в мой каталог (TabBarController)?

Заранее спасибо.

1 Ответ

0 голосов
/ 25 октября 2010

Это очень странный способ создать приложение. Однако вы должны быть в состоянии раскрыть UITabBarController в стеке контроллера навигации. Я не вижу причин, почему это было бы невозможно.

В противном случае вы можете импортировать свой код из другого приложения, а затем, когда вы нажмете на кнопку, вы сможете сделать [self presentModalViewController:myTabBarController animated:YES];, и это даст те же функции.

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