У меня есть два UITableViewControllers, так что, когда я нажимаю на первый UITableViewController, второй UITableViewController попадает в стек навигации и анимирует переход, как обычно. Я бы хотел, чтобы это произошло, когда я нажимаю дальше, анимируются только виды, а панель навигации не остается (остается прежней). Я получил очень близко к делать это на код ниже:Как отключить анимацию navigationBar?
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
CATransition *navTransition = [CATransition animation];
navTransition.duration = .5;
navTransition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
navTransition.type = kCATransitionPush;
navTransition.subtype = kCATransitionPush;
[self.navigationController.navigationBar.layer addAnimation:navTransition forKey:nil];
}
Я ставлю этот код, и я также сделать так, заголовок и кнопки на обеих панелей навигации точно так же в каждом UITableViewController. Это почти работает, проблема в том, что навигационная панель мигает, когда происходит анимация. Есть ли способ заставить его не мигать, или есть ли другой хороший способ предотвратить анимацию навигационной панели (т.е. отключить анимацию на слое или что-то еще)?
ОБНОВЛЕНИЕ: У кого-нибудь есть другие идеи? Все еще борется с этим.
Я использую код анимации в viewDidLoad, но я не уверен, когда, где и если я должен использовать removeAllAnimations, вы еще какие-нибудь комментарии? Заранее спасибо. – Jules
@Jules - я уточнил ответ гораздо более подробно. Попробуйте это и дайте мне знать, как это происходит. Все должно работать нормально, но я сделал это некоторое время назад, так что дайте мне знать. –
Подкласс 'UINavigationBar' и переопределить' popNavigationItemAnimated' http://www.petersimpson.me/blog/static-nav-bar/ – gav