Панель вкладок исчезает под нижней частью экрана - PullRequest
1 голос
/ 06 мая 2010

В моем приложении я использую контроллер навигации, чтобы выдвинуть одно представление, которое также загружает контроллер панели вкладок и пользовательскую панель навигации. Проблема в том, что панель вкладок исчезает внизу экрана, и я не знаю, в чем причина проблемы.

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

Я также понял, что изображения и текст вкладок не отображаются (я настроил изображения и текст «избранного» и «контактов», они достаточно большие и должны быть видны в верхней части экрана). вкладка, но их нет).

Кстати, обе вкладки работают отлично.

Здесь изображение .

Я загружаю панель вкладок со следующим кодом:

- (void)viewDidLoad {
    [super viewDidLoad];
    myTabBarController = [[UITabBarController alloc] init];
    SettingsViewController* tab1 = [[SettingsViewController alloc] init];   
    AboutViewController* tab2 = [[AboutViewController alloc] init];
    NSArray* controllers = [NSArray arrayWithObjects:tab1, tab2, nil];
    myTabBarController.viewControllers = controllers;
    [self.view insertSubview:myTabBarController.view belowSubview:myNavigationBar];
}

Неважно, удаляю ли я панель навигации или нет. Я проверил, используя вместо этого:

[self.view addSubview:myTabBarController.view];

... забывая о панели навигации, но панель вкладок все еще уходит под дно.

Я не знаю, связана ли проблема с одним из моих файлов NIB или с тем, как я загружаю представление (хотя я делаю это, как я прочитал в документации Apple SDK). Есть идеи?

Другой вопрос будет ... знаете ли вы, как я могу изменить заголовок панели навигации при выборе второй вкладки? Я полагаю, я должен был бы сделать это в viewDidLoad в AboutViewController.m, это будет правильно?

Спасибо за ваше время!

1 Ответ

0 голосов
/ 06 мая 2010

Пожалуйста, задавайте один вопрос для каждого представления - это позволит нам лучше помочь вам.

Для вашей первой проблемы: вам нужно добавить контроллер панели вкладок в контроллер навигации, а не в это представление.Иерархия должна быть:

  • Контроллер навигации
    • Контроллер панели вкладок
      • Ваше мнение

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

По вашему второму вопросу текст наКнопка «Назад» определяется свойством title предыдущего контроллера представления.Чтобы изменить его, сделайте следующее ( источник ):

- ( void )viewDidLoad
{
    [ super viewDidLoad ];

    UIBarButtonItem *backButton =
    [[ UIBarButtonItem alloc ] initWithTitle:@"Back"
                                       style:UIBarButtonItemStyleBordered
                                      target:nil
                                      action:nil ];
    self.navigationItem.backBarButtonItem = backButton;
    [ backButton release ];
}

РЕДАКТИРОВАТЬ: Похоже, вы хотите установить заголовок секунд Просмотр контроллера в вашем стеке навигации.Это просто:

- ( void )viewDidLoad
{
    [ super viewDidLoad ];

    self.title = @"Title";
}
...