Выполните переход в viewWillAppear вызвать проблемы в iOS 7

У меня есть проект, где у меня есть, помимо других экранов, экран "История", экран "Выбрать профиль" и экран "Регистрация нового профиля".

Если пользователь входит в историю и у него не выбран профиль, он должен быть перенаправлен с помощью ChooseProfile, а затем вернуться в историю с профилем. Кроме того, на экране ChooseProfile, если у него еще нет профилей, его необходимо перенаправить на экран "Регистрация нового профиля".

Пользователь не должен видеть все переходы экрана. Когда он решает войти в "Историю", он должен видеть только переход к последнему экрану (например, если у пользователя нет профиля и щелкните, чтобы перейти в "Историю", я должен увидеть переход в "Регистрация нового профиля", чтобы я мог заполнить свои данные). и когда нажмите кнопку ОК, вернитесь к истории с действительным профилем - даже не видя между ними ChooseProfile).

Я мог добиться этого в iOS 6, выполняя сегменты (или делая нажатия) в viewWillAppear контроллера, и все выглядело хорошо. Но в iOS 7 у меня странные эффекты. Например, иногда экран зависает в первом контроллере (History) и, даже если приложение не падает, все кажется отключенным.

В отладке кажется, что он выдвигает другие контроллеры, но экран (представление) не меняется.

Кто-то может помочь мне с решением? Я не хочу переделывать весь мой поток, чтобы решить это...

Благодарю.

Вот некоторые части кода. Надеюсь, поможет.

В HomeController (корень):

- (IBAction)historyBtnPressed:(UIButton *)sender {
   UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"HistoryController"];
   [self.navigationController pushViewController:vc animated:NO];
}

В контроллере истории:

-(void)viewWillAppear:(BOOL)animated {
   [_tableView reloadData];

   if(!_profile)
      [self selectProfilePressed:nil];
}

- (IBAction)selectProfilePressed:(UIButton *)sender {
   [self performSegueWithIdentifier:@"ProfileListSegue" sender:nil];
}

Если в первом блоке кода я оставил анимацию: НЕТ, она работает нормально, но у меня нет эффекта перехода, даже с переходом во второй контроллер. Экран (ProfileList) просто появляется.

Если я установлю его на анимированный: ДА в первом блоке кода, мой стек навигации, кажется, запутается.

0 ответов

Другие вопросы по тегам