Создание панели вкладок с помощью контроллеров раскадровки? - PullRequest
8 голосов
/ 13 ноября 2011

У меня есть панель вкладок, которая создается программно, и у меня возникают трудности при инициализации раскадровки, связанной с представлением.

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

Имя моей раскадровки - MainStoryboard, и я установил идентификатор представления раскадровки в SettingsViewController.

Как я могу инициализировать раскадровку для SettingsViewController в приведенном ниже коде?

- (void)createTabBarItems {
    tabBarController = [[UITabBarController alloc] init];

    settingsViewController  = [[SettingsViewController alloc] init];


    UINavigationController *sett = [[[UINavigationController alloc]
                                     initWithRootViewController: settingsViewController] autorelease];

    [sett.tabBarItem setTitle:@"Settings"];
    [sett.tabBarItem setImage:[UIImage imageNamed:@"settings.png"]];

    [tabBarController setViewControllers:
        [NSArray arrayWithObjects:sett, sett, sett, sett, nil]]; 
}

Ответы [ 2 ]

18 голосов
/ 13 ноября 2011

Если вы хотите инициализировать контроллер представления, как в раскадровке, вы должны использовать методы раскадровки вместо прямого выделения контроллера представления:

// load the storyboard by name
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

// either one of the two, depending on if your view controller is the initial one
settingsViewController = [storyboard instantiateInitialViewController];
settingsViewController = [storyboard instantiateViewControllerWithIdentifier:@"SettingsViewController"];
0 голосов
/ 18 февраля 2018

Свифт 4

let storyboard = UIStoryboard(name: "Main", bundle: nil)
settingsViewController = storyboard.instantiateInitialViewController()
settingsViewController = storyboard.instantiateViewController(withIdentifier: "SettingsViewController")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...