Проблема с использованием popViewController мигает белым во время перехода - PullRequest
4 голосов
/ 04 июня 2011

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

Вот проблема: Когда я нажимаю новый контроллер представления, я использую следующий код:

NewViewController *newVC = [[NewViewController alloc] initWithNib:@"NewView" bundle:nil];
[self.navigationController pushViewController:newVC animated:YES];
[newVC release];

Код, который я использую для возврата к предыдущему представлению внутри newVC:

[self.navigationController popViewControllerAnimated:YES];

Я читал, что это потенциально может выпустить сам self.navigationController, поэтому я реализовал этот код:

UINavigationController *nc = [self navigationController];
[nc popViewControllerAnimated:YES];

Результатом является плавный переход к новому ВК без белой вспышки, но при возврате к исходной странице экран мигает белым, как если бы он выпускал новый ВК, прежде чем вернуться на исходную страницу. ТЕМ НЕ МЕНИЕ! При отладке я установил точки останова на viewWillAppear исходной страницы и на разгрузку нового виртуального контейнера, а переход viewWillAppear + с белой вспышкой завершился ПЕРЕД вызовом освобождения нового виртуального контейнера.

Если бы кто-нибудь мог помочь мне пролить свет на это, я был бы очень признателен.

Спасибо! ~ Arash

Ответы [ 3 ]

10 голосов
/ 25 апреля 2013

Это старый пост, но для тех, кто может столкнуться с этой проблемой в будущем, я решил ее, установив для свойства clipsToBounds представления ViewController значение "TRUE"

-(void)viewDidLoad {
    [super viewDidLoad];
    self.view.clipsToBounds = YES;
}
0 голосов
/ 05 января 2017

FWIW, эта же проблема возникла у меня в приложении Swift.Основной причиной, по-видимому, было то, что я делал это:

self.navigationItem.rightBarButtonItem = nil

... для динамического скрытия кнопки, где у UIBarButtonItem был выход в текущем UIViewController.

Мне не нужно было IBOutlet для этой кнопки, поэтому я удалил розетку, и она заработала.

0 голосов
/ 23 июня 2011

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

...