Это обобщенный ответ, чтобы предоставить будущим читателям четкое и понятное решение и точно сформулировать некоторые связанные проблемы.
Решением проблемы является следующий код>
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
[segue.destinationViewController setHidesBottomBarWhenPushed:YES];
}
Проблема / путаница заключается в том, что в методе prepreareForSegue: можно установить свойство "hidesBottomBarWhenPush" в контроллере исходного представления (которое мы видим прямо сейчас) или в контроллере представления назначения (тот, который помещается в стек).Установив это в любом случае, вы получите первую половину решенной проблемы, т.е.Ваш TabBar становится скрытым.Вот почему «скрывающая» часть в моем прежнем коде работала, я устанавливал свойство в исходном viewcontroller.В моем коде
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
self.hidesBottomBarWhenPushed = YES;
}
здесь «self» указывает на контроллер представления источника, а не на контроллер представления представления.Таким образом, мы должны установить это в качестве конечного контроллера представления ...
Одна последняя проблема .. этот код с точечной нотацией не работает>
segue.destinationViewController.setHidesBottomBarWhenPushed = YES;
Вы должны вызывать метод setter следующим образом
[segue.destinationViewController setHidesBottomBarWhenPushed:YES];
Решение в точности соответствует спецификации Apple, в которой говорится, что «нижняя панель остается скрытой до тех пор, пока контроллер представления (со свойством hide установленным в YES) извлечен изстек. "
И последнее, не забудьте сузить настройку свойства hide до специфического перехода
-(void)prepareForSegue:(UIStoryboardSegue *)segue
sender:(id)sender
{
if ([segue.identifier isEqualToString:@"SegueIdentifier"])
{
[segue.destinationViewController setHidesBottomBarWhenPushed:YES];
}
}
Я делю вознаграждение для двух пользователей (Щедрость достается Эшу Ферроу, принявшему решение Эрику Ларсону, это самое близкое, что я смог прийти после прочтения правил о вознаграждениях и акцептах), которые оба помогли мне решить эту проблему + небольшой комментарий, почему в своих уважаемых темах.