Изменить autoresizingMask на программно созданной панели навигации - PullRequest
1 голос
/ 21 мая 2011

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

-(IBAction)switchToTableView; {

    tableView *table = [[tableView alloc] initWithNibName:@"tableView" bundle:nil];
    UINavigationController *navControl = [[UINavigationController alloc] initWithRootViewController: table];
    table.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [table release];
    [self presentModalViewController: navControl animated:YES];
    [navControl release];
}

Затем в viewDidLoad класса tableview я реализовал:

- (void)viewDidLoad 
{
    self.tableView.rowHeight = 70.f;

    UIBarButtonItem *back = [[UIBarButtonItem alloc]
                             initWithTitle:@"Back"
                             style:UIBarButtonItemStyleDone
                             target:self
                             action:@selector(switchToHome)];
    self.navigationItem.leftBarButtonItem = back;

    UIBarButtonItem *map = [[UIBarButtonItem alloc]
                            initWithTitle:@"Map"
                            style:UIBarButtonItemStyleDone
                            target:self
                            action:@selector(switchBacktoFindArt)];
    self.navigationItem.rightBarButtonItem = map;
    [map release];

    [super viewDidLoad];
}

чтобы добавить нужные кнопки. Теперь все это работало отлично, но теперь, когда я просматриваю свое приложение и допускаю изменения ориентации, у меня возникли проблемы с этим, поскольку я не могу изменить autoresizingMask в IB. Вся страница просмотра таблицы отлично изменяется, за исключением того, что панель навигации становится очень тонкой сверху вниз. Я бы хотел, чтобы он оставался на одной высоте. Как мне настроить соответствующие маски или даже получить доступ к панели навигации за пределами IB?

1 Ответ

2 голосов
/ 21 мая 2011

Полагаю, вы можете поиграть с такими вещами, чтобы отключить изменения высоты:

navControl.navigationBar.autoresizingMask ^= UIViewAutoresizingFlexibleHeight

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

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